正如切普纳所指出的那样。您的子流程部分是单独运行的。必须在启动 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)
如前所述,从未尝试过。在发布之前获取它。