Python 子进程找不到 Pythonpath 模块



我正在尝试使用subprocess.run(['python3.9', "scripts/example.py"], check=True)

example.py使用一个模块,我已经添加到PYTHONPATH。然而,无论何时运行上面的行,都找不到模块。

对我来说令人困惑的部分是,在example.py中打印sys.path,我确实看到了我的模块的路径。但是当我在example.py中运行os.system("which python")os.system("echo $PYTHONPATH")时,它返回/不打印任何内容。

看起来您需要检查文档中subprocess.runenv参数并适当设置。

旁注:通常你会想要使用完全相同的Python解释器来调用子进程,所以你会写:subprocess.run([sys.executable, 'scripts/example.py'], ...),除非你真的想要显式地使用'python3.9'而不是其他(这将是令人惊讶的)。

最新更新