簡體   English   中英

不同 python 版本的子流程執行

[英]subprocess execution with different python version

我有一個腳本,我在 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,
                             )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM