python - 不同python版本的子流程执行
问题描述
我有一个脚本,我在 python3 虚拟环境中执行,在这个脚本中有一个 subprocess.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,
)
推荐阅读
- javascript - 如何让 jsdoc 使用 django 模板标签?
- reactjs - 如何反转雄蕊图中的调色剂层?
- android - java.lang.IllegalArgumentException : 不能有替换块。对于动态查询参数,使用 @Query
- regex - VBScript 正则表达式 - 条件匹配
- javascript - 实时更新(Bulma)进度条
- asynchronous - 无法为“需要静态”的自我推断适当的生命周期
- python - 如何在 Django 中获得干净的分页 URL?
- amazon-web-services - 是否可以禁用 congnito 用户池?
- java - java中类对象之间的转换
- highcharts - 显示工具提示并保持可见