Go exec.Cmd()导致Python脚本无法导入模块?

问题描述 投票:1回答:1

我有以下执行外部Python脚本的Go代码。

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

windows go exec python-3.5
1个回答
0
投票
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()

© www.soinside.com 2019 - 2024. All rights reserved.