我正在尝试使用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.run
的env
参数并适当设置。
旁注:通常你会想要使用完全相同的Python解释器来调用子进程,所以你会写:subprocess.run([sys.executable, 'scripts/example.py'], ...)
,除非你真的想要显式地使用'python3.9'
而不是其他(这将是令人惊讶的)。