对于以下python脚本:
import os
os.system('PYTHONPATH=\user\...')
os.system('export PYTHONPATH')
....
无论如何我们可以"出口"执行此脚本后,PYTHONPATH
变量到shell?
答案 0 :(得分:4)
不,这是不可能的。启动Python进程时,它会从父shell复制它自己的环境副本。 Python进程只能修改私有副本,并且更改不会传播回父进程。
如果你想做这样的事情,最好的办法是打印执行所需环境变量变化所需的shell命令,例如。
print "export PYTHONPATH=$PYTHONPATH:..."
并使用
运行脚本eval "$(python myscript.py)"
答案 1 :(得分:0)
斯文的答案很好。
根据您的要求,另一种可能的方法是从Python脚本调用新的shell进程。由于新shell是Python进程的子进程,因此它将继承任何环境变量。
显然,这并不总是你想要做的,但它是另一种选择。