环境变量不从python更新

时间:2017-10-12 15:27:38

标签: python python-3.x shell unix csh

我尝试从python执行csh脚本(创建或更新环境变量),但环境变量在返回shell后不会更新。 为什么?我该如何解决?

subprocess.call('script.csh',shell=True,executable="/bin/csh")

1 个答案:

答案 0 :(得分:0)

要在python中设置环境变量,请使用

os.environ['YOUR_VARIABLE'] = "your_value"

请注意,环境变量必须是字符串。

解释为什么你不能做你想做的事情:

环境变量在每个进程的内存空间中设置。当bash(或任何shell)运行程序时,它使用fork(),它继承bash的变量,因为它是一个子进程。你试图做的是创建一个子进程并让他父母继承孩子,就像@PM 2Ring说的那样。

相关问题