环境变量未通过后续子进程调用保存(Python)

时间:2015-10-14 00:05:17

标签: python shell subprocess

我想在shell中设置环境变量,然后在后续命令中使用这些变量;但是在shell模式下使用subprocess.call()不会保持环境变量的设置。如何通过子流程获得所需的功能。

以下是我遇到的问题的简化示例:

import subprocess
#Method 1
subprocess.call('VARNAME1=\"MyValue1\"', shell=True)
subprocess.call("echo $VARNAME1", shell=True)

#Method 2
subprocess.call('VARNAME2=\"MyValue2\"; echo $VARNAME2', shell=True)

输出:

> 
> MyValue2

预期产出:

> MyValue1
> MyValue2

我将无法将命令与";"正如我在第二种方法中所做的那样。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

要设置环境变量,必须使用os.environ数组

例如:

import os    
os.environ['VARNAME1'] = "My value"