[英]Python2.7 subprocess32: how to share environment between two scripts executed via Popen?
我有2個腳本:1.配置一個,可修改大約20個環境變量並在其中運行另一個小腳本,以及2.該進程使用由script1設置的環境變量來執行某些操作。
我試圖通過Python2.7 subprocess32.Popen()一個接一個地執行它們,並將相同的env變量傳遞給兩個Popen。 沒有成功,script1的環境對於script2只是空的
import os
import subprocess32 as subprocess
my_env = os.environ
subprocess.Popen(script1, env=my_env)
subprocess.Popen(script2, env=my_env)
我實際上如何在兩個腳本之間共享環境?
當第一個子流程退出時,對其環境的更改將消失。 此類更改僅傳播到其自己的子流程。 您需要執行以下操作:
import shlex
subprocess.Popen(". {}; {}".format(shlex.quote(script1),
shlex.quote(script2)),
shell=True)
但是與往常一樣,使用shell=True
會帶來安全問題。
我認為問題出在my_env=my_env
,第二個參數需要是env
。
my_env = os.environ
subprocess.Popen(script1, env=my_env)
my_env = os.environ
subprocess.Popen(script2, env=my_env)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.