【发布时间】:2014-08-27 23:02:27
【问题描述】:
我有一个 python 脚本,它运行一个 set_env.sh 文件。 后来,我可以把这个新的变量环境改成 set_env.sh 有可能吗?
set_env.sh
var1="value1" var2="value2" var3="value3"
get_env.py
import os
os.system("set_env.sh")
print os.environ['var1']
结果:KeyError: 'var1'
我知道我可以在 python 文件中使用 os.environ['var1'] = 'value' (或 set var env)。 但我只能从 shell 文件中访问此环境信息。
你能帮帮我吗?
【问题讨论】:
-
当你从 shell 运行
env- 你看到变量设置了吗? -
打印环境变量/值并读入python
-
@programmerjake 这就是
os.environ所做的 -
@alfasin,感谢您的回复。是的,我修改了 set_env.sh 并添加了 echo $var1 并且工作正常。
-
@moylop260
os.system执行命令在子shell中。但是,子 shell 不能修改父 shell 的环境。因此,set_env.sh所做的更改将在os.system完成后立即被遗忘。