我尝试从python执行csh脚本(创建或更新环境变量),但环境变量在返回shell后不会更新。 为什么?我该如何解决?
subprocess.call('script.csh',shell=True,executable="/bin/csh")
答案 0 :(得分:0)
要在python中设置环境变量,请使用
os.environ['YOUR_VARIABLE'] = "your_value"
请注意,环境变量必须是字符串。
解释为什么你不能做你想做的事情:
环境变量在每个进程的内存空间中设置。当bash(或任何shell)运行程序时,它使用fork(),它继承bash的变量,因为它是一个子进程。你试图做的是创建一个子进程并让他父母继承孩子,就像@PM 2Ring说的那样。