我正在尝试更改我的 Python 执行过程的环境。似乎正确的方法应该是与 os.environ 交互。但是,我以下断言失败:
import os, subprocess
os.environ['ATESTVARIABLE'] = 'value'
value = subprocess.check_output(['echo', '$ATESTVARIABLE'], shell=True)
assert 'value' in value
我还应该做些什么来改变当前的环境吗?上面的代码揭示了我对 Python 的理解有什么缺陷:)?
(请注意,在当前 Python 解释器中,os.environ['ATESTVARIABLE']
包含预期值。我正在设置运行一些需要特定环境变量的代码,并且可能会启动外部进程。显然,如果我想控制特定子进程的环境,我会使用 env 关键字。)