如何保持由bat文件设置的系统环境,该文件由python脚本调用

时间:2010-03-30 14:55:49

标签: python windows

我在Python中调用.bat文件来设置系统环境,并检查系统环境是否设置正确,然后返回运行python代码,将系统环境更改回原始版本。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

环境设置始终在子进程中发生,并且永远不会直接影响父进程。但是你可以运行(在同一个子进程中,在该进程的最后更改了它的环境)一个命令(env在类Unix环境中,我相信set在DOS中.bat .cmd 1}}文件存在于Windows中并且在subprocess.Popen('thescript; env', shell=True, stdout=...)文件相似的Windows中)将环境输出到其标准输出或文件;父进程可以读取该文件并将更改应用于自己的环境。

在Unix中,foo.bat; set可能就足够了。在Windows中,我不确定传递,因为第一个参数foo.bat会起作用;如果没有,只需创建一个微小的临时“辅助蝙蝠”,然后执行set然后{{1}},然后运行该蝙蝠。

答案 1 :(得分:1)

我怀疑你是从Python程序调用批处理文件然后返回调用Python代码。子进程(在本例中是对批处理文件的调用)不会影响父进程(批处理文件)的环境。

设置环境的批处理文件通常写为:

# set up my environment 
python myprogram.py

在这种情况下,从属Python程序将继承调用批处理文件的环境。