尝试使用exec.Command在Golang中执行Python代码。

huangapple go评论124阅读模式
英文:

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中找不到可执行文件

英文:
  1. func execPython(fPath, colName, srv string) (){
  2. fmt.Println("Inside execPython")
  3. cmd:= "python rfsvmchurn.py"
  4. arg0 := "-fp " + fPath
  5. arg1 := "-srv " + srv
  6. arg2 := "-col " + colName
  7. if err := exec.Command(cmd, arg0, arg1, arg2).Run(); err != nil {
  8. fmt.Println("Python Execution Error :",err)
  9. }

}

getting error
Python Execution Error : exec: "python rfsvmchurn.py": executable file not found in $PATH

答案1

得分: 1

你的问题可能是你将标志和它们的参数作为一个字符串传递。你应该这样做:

  1. func execPython(fPath, colName, srv string) {
  2. fmt.Println("Inside execPython")
  3. arg0 := "-fp " + fPath
  4. arg1 := "-srv " + srv
  5. arg2 := "-col " + colName
  6. cmd := exec.Command("python", "rfsvmchurn.py", "-fp", fPath, "-srv", srv, "-col", colName)
  7. if err := cmd.Run(); err != nil {
  8. fmt.Println("Python Execution Error:", err)
  9. }
  10. }

请注意,我已经将代码翻译成了中文。

英文:

Your issue is probably that you're passing flags and their arguments as a single string. You should instead do:

  1. func execPython(fPath, colName, srv string) (){
  2. fmt.Println("Inside execPython")
  3. arg0 := "-fp " + fPath
  4. arg1 := "-srv " + srv
  5. arg2 := "-col " + colName
  6. cmd := exec.Command("python", "rfsvmchurn.py", "-fp", fPath, "-srv", srv, "-col", colName)
  7. if err := cmd.Run(); err != nil {
  8. fmt.Println("Python Execution Error :",err)
  9. }
  10. }

huangapple
  • 本文由 发表于 2016年1月27日 09:59:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/35027519.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定