我需要這樣做:python subprocess set shell var。然後運行命令 - 如何?
$ export PYRO_HMAC_KEY=123
$ python -m Pyro4.naming
所以,我發現,第二個是有可能與之前
subprocess.Popen(['python','-m','Pyro4.naming'])
但如何導出Shell變量呢?
我需要這樣做:python subprocess set shell var。然後運行命令 - 如何?
$ export PYRO_HMAC_KEY=123
$ python -m Pyro4.naming
所以,我發現,第二個是有可能與之前
subprocess.Popen(['python','-m','Pyro4.naming'])
但如何導出Shell變量呢?
要更新現有的環境...
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)
或作爲一行:'env = dict(os.environ,PYRO_HMAC_KEY ='123')' – jfs 2015-08-19 00:49:46
子流程功能接受env
論點,即可以給出環境變量的映射的過程中的使用方法:
subprocess.Popen(['python','-m','Pyro4.naming'], env={'PYRO_HMAC_KEY': '123'})
這使得子進程環境除'PYRO_HMAC_KEY'之外爲空。 – chepner 2012-08-06 19:46:14
@ F.J非常感謝! – scythargon 2012-08-06 21:50:05
嘗試os.putenv():http://docs.python.org/library/os.html#os.putenv
您是否有充足的理由從shell切換到Python?如果shell腳本起作用,可以很容易地從Python中調用它。 – Lenna 2012-08-06 20:47:18
是的,我不想創建像'run_me.sh'這樣的附加文件,它不是那麼...規範的方式:) – scythargon 2012-08-06 21:48:58