use*_*850 3 python subprocess environment-variables
我正在寻找一种执行此操作的方法,以便可以将其传递到另一个子流程的环境中。
小智 6
这是一个简单的函数,它在子进程中运行命令,然后将其环境提取到当前进程中。
它基于Fnord的版本,没有tempfile,并且带有标记线以区分SET命令与进程本身的任何输出。它不是防弹的,但可以满足我的目的。
def setenv(cmd):
cmd = cmd + ' && echo ~~~~START_ENVIRONMENT_HERE~~~~ && set'
env = (subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
.stdout
.read()
.decode('utf-8')
.splitlines())
record = False
for e in env:
if record:
e = e.strip().split('=')
os.environ[e[0]] = e[1]
elif e.strip() == '~~~~START_ENVIRONMENT_HERE~~~~':
record = True
Run Code Online (Sandbox Code Playgroud)