Python:子流程中的持久shell变量

Python:子流程中的持久shell变量,python,shell,variables,subprocess,persistent,Python,Shell,Variables,Subprocess,Persistent,我试图使用Pythons子流程模块执行一系列命令,但是在运行shell变量之前,我需要使用export设置它们。当然,shell似乎不是持久的,所以当我稍后运行命令时,这些shell变量将丢失 有什么办法吗?我可以创建一个/bin/sh进程,但是我如何获得在该进程下运行的命令的退出代码呢?subprocess.Popen接受一个可选的命名参数env,它是一个字典,可以用作子进程的环境(您称之为“shell变量”)。根据需要准备一份dict(您可以从一份os.environ开始,并根据需要修改),

我试图使用Pythons子流程模块执行一系列命令,但是在运行shell变量之前,我需要使用export设置它们。当然,shell似乎不是持久的,所以当我稍后运行命令时,这些shell变量将丢失


有什么办法吗?我可以创建一个/bin/sh进程,但是我如何获得在该进程下运行的命令的退出代码呢?

subprocess.Popen
接受一个可选的命名参数
env
,它是一个字典,可以用作子进程的环境(您称之为“shell变量”)。根据需要准备一份dict(您可以从一份
os.environ
开始,并根据需要修改),然后将其传递给您执行的所有
子流程.Popen
调用。

Alex绝对正确。举例

current_env=environ.copy()
current_env["XXX"] = "SOMETHING" #If you want to change some env variable
subProcess.Popen("command_n_args", env=current_env)