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()