英文:
Trying to exec python in golang using exec.Command(
问题
func execPython(fPath, colName, srv string) (){
fmt.Println("在execPython函数内")
cmd := "python rfsvmchurn.py"
arg0 := "-fp " + fPath
arg1 := "-srv " + srv
arg2 := "-col " + colName
if err := exec.Command(cmd, arg0, arg1, arg2).Run(); err != nil {
fmt.Println("Python执行错误:", err)
}
}
出现错误
Python执行错误: exec: "python rfsvmchurn.py": 在$PATH中找不到可执行文件
英文:
func execPython(fPath, colName, srv string) (){
fmt.Println("Inside execPython")
cmd:= "python rfsvmchurn.py"
arg0 := "-fp " + fPath
arg1 := "-srv " + srv
arg2 := "-col " + colName
if err := exec.Command(cmd, arg0, arg1, arg2).Run(); err != nil {
fmt.Println("Python Execution Error :",err)
}
}
getting error
Python Execution Error : exec: "python rfsvmchurn.py": executable file not found in $PATH
答案1
得分: 1
你的问题可能是你将标志和它们的参数作为一个字符串传递。你应该这样做:
func execPython(fPath, colName, srv string) {
fmt.Println("Inside execPython")
arg0 := "-fp " + fPath
arg1 := "-srv " + srv
arg2 := "-col " + colName
cmd := exec.Command("python", "rfsvmchurn.py", "-fp", fPath, "-srv", srv, "-col", colName)
if err := cmd.Run(); err != nil {
fmt.Println("Python Execution Error:", err)
}
}
请注意,我已经将代码翻译成了中文。
英文:
Your issue is probably that you're passing flags and their arguments as a single string. You should instead do:
func execPython(fPath, colName, srv string) (){
fmt.Println("Inside execPython")
arg0 := "-fp " + fPath
arg1 := "-srv " + srv
arg2 := "-col " + colName
cmd := exec.Command("python", "rfsvmchurn.py", "-fp", fPath, "-srv", srv, "-col", colName)
if err := cmd.Run(); err != nil {
fmt.Println("Python Execution Error :",err)
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论