正如chepner指出的那樣。您的子流程部分單獨運行。 與環境變量的使用必須要以啓動python腳本之前做..
例如:
C:\Users\anton\Desktop\githubs>echo %x%
y
C:\Users\anton\Desktop\githubs>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['x']
'y'
>>>
採購之前,啓動腳本但是將穿越了你的環境變量,或者如果您執行多個給子進程調用的命令在你獲得它之後也會很棒。例如:
import subprocess
import os
x = subprocess.call("source k.sh",shell=True, STDIN=subprocess.PIPE, STDOUT=subprocess.PIPE)
y = subprocess.call("echo $var",shell=True, STDIN=x.stdout, STDOUT=subprocess.PIPE)
從未嘗試過,如前所述。在發佈之前將其來源。
它可以與'os.system'而不是'subprocess.call'一起使用嗎? – SethMMorton 2013-05-14 18:25:25
@SethMMorton:不,它不適用於os.system – ftw 2013-05-14 18:29:43
這不是一個好主意。問題是你爲什麼要這樣做。你真的想在這裏做什麼?只需將變量傳回父級? – cmd 2013-05-14 18:44:41