我遇到python中的环境变量问题。如何让python将变量导出到父shell?
我使用的是ubuntu,python 2.7.4
我明白了:
$ python
>>> import os
>>> os.environ
{'HOME':'~'}
>>> os.environ['foo']='bar'
>>> os.environ
{'HOME':'~','foo':'bar'}
>>> quit()
$ echo $foo
# Place #1
$ python
>>> import os
>>> os.environ
{'HOME':'~'} # Place #2
>>>
我的预期输出是:
bar
{'HOME':'~','foo':'bar'}
由于
答案 0 :(得分:4)
子进程中设置的环境变量(例如python)不影响父进程。
这是一条单行道;如果可以这样做,那么利用shell会非常容易!必须在父进程本身中设置环境变量。此限制由操作系统强制执行,并非特定于Python。
请注意,shell中的sourcing a file(例如. script.sh
)不会创建新进程;但是没有办法“获取”Python文件。