python子进程设置shell var。然后运行命令 - 如何?

时间:2012-08-06 19:30:30

标签: python subprocess

我需要这样做:

$ export PYRO_HMAC_KEY=123
$ python -m Pyro4.naming

所以,我发现第二个可能与

有关
subprocess.Popen(['python','-m','Pyro4.naming'])

但是之前如何导出shell变量?

3 个答案:

答案 0 :(得分:18)

更新现有环境......

import os, subprocess

d = dict(os.environ)   # Make a copy of the current environment
d['PYRO_HMAC_KEY'] = '123'
subprocess.Popen(['python', '-m', 'Pyro4.naming'], env=d)

答案 1 :(得分:8)

子流程函数接受一个env参数,该参数可以给出要在过程中使用的环境变量的映射:

subprocess.Popen(['python','-m','Pyro4.naming'], env={'PYRO_HMAC_KEY': '123'})

答案 2 :(得分:0)