如何在python中导入已完成进程的环境变量?

ric*_*rdo 1 python unix shell environment-variables

我需要编写一个python脚本来启动shell脚本并在脚本完成后导入环境变量.

想象你有一个shell脚本"a.sh":

export MYVAR="test"
Run Code Online (Sandbox Code Playgroud)

在python我想做的事情如下:

import os
env={}
os.spawnlpe(os.P_WAIT,'sh', 'sh', 'a.sh',env)
print env
Run Code Online (Sandbox Code Playgroud)

得到:

{'MYVAR'="test"}
Run Code Online (Sandbox Code Playgroud)

那可能吗?

Dav*_*d Z 5

不,对子进程中的环境变量所做的任何更改都会保留在该子进程中.(据我所知,那就是)当子进程终止时,它的环境就会丢失.

我建议让shell脚本将其环境或至少你关心的变量打印到它的标准输出(或标准错误,或者它可以将它们写入文件),并且你可以从Python读取该输出.