我有一个脚本,该脚本在python3虚拟环境中执行,并且在此脚本中有subrocess.Popen命令,该命令启动仅适用于python2的应用程序。有没有一种方法可以仅更改此进程的环境,以使此子进程仅找到python2?
到目前为止,我已经尝试了以下尚未解决的问题。
os.environ["PATH"] = "/path/to/python2/bin:"+os.environ["PATH"]
我找到的最简单的解决方案:
venv = os.environ.copy()
venv.update({"PATH": os.environ["PATH"].replace(venv['VIRTUAL_ENV'],
'other/python/version/path')}) # might have to tweak this a bit only
proc2 = subprocess.Popen(["cmd",
env=venv,
stdout=sys.stdout,
stderr=sys.stderr,
)