Python:子流程中的永久外壳变量


问题内容

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

有什么办法可以解决这个问题吗?我可以创建一个/ bin / sh进程,但是如何获取在其下运行的命令的退出代码?


问题答案:

subprocess.Popen接受一个可选的命名参数env,该参数是一个字典,用作子进程的环境(您将其描述为“
shell变量”)。根据需要准备一个字典(可以从复制副本开始,os.environ然后根据需要进行更改),然后将其传递给subprocess.Popen您执行的所有呼叫。