Go exec.Cmd() 导致 Python 脚本无法导入模块?
Go exec.Cmd() causing Python script to not import module?
我有以下 Go 代码执行外部 Python 脚本。
package main
import (
"log"
"os"
"os/exec"
"fmt"
)
func main(){
//Call Python script
cmd := exec.Command(`C:\Python35\python35.exe`, `C:\...\py_file.py`)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
}
它在 Py 文件中导致此错误:
ImportError: No module named 'youtube_transcript_api'
但是,如果我 运行 Py 文件本身,它工作得很好。它应该输出 JSON.
我错过了什么吗?如果您需要更多信息,请告诉我!
非常感谢,
M2com
1)Windows
首先让你的python脚本可执行并在环境变量中包含python解释器
例如:
cmd := exec.Command("script.py") //file path C:\...\py_file.py
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
2)Linux
首先不要忘记使您的 python 脚本可执行(权限和开头的 #!/usr/local/bin/python
例如:
cmd := exec.Command("bash", "-c", "python3 script.py")
_, err = cmd.Output()
我有以下 Go 代码执行外部 Python 脚本。
package main
import (
"log"
"os"
"os/exec"
"fmt"
)
func main(){
//Call Python script
cmd := exec.Command(`C:\Python35\python35.exe`, `C:\...\py_file.py`)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
}
它在 Py 文件中导致此错误:
ImportError: No module named 'youtube_transcript_api'
但是,如果我 运行 Py 文件本身,它工作得很好。它应该输出 JSON.
我错过了什么吗?如果您需要更多信息,请告诉我!
非常感谢, M2com
1)Windows
首先让你的python脚本可执行并在环境变量中包含python解释器
例如:
cmd := exec.Command("script.py") //file path C:\...\py_file.py
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
2)Linux
首先不要忘记使您的 python 脚本可执行(权限和开头的 #!/usr/local/bin/python
例如:
cmd := exec.Command("bash", "-c", "python3 script.py")
_, err = cmd.Output()