我在Python中调用.bat文件来设置系统环境,并检查系统环境是否设置正确,然后返回运行python代码,系统环境又变回原始状态.我怎么解决这个问题?
解决方法:
环境设置始终在子进程中发生,并且永远不会直接影响父进程.但是你可以运行(在同一个子进程中已经改变了它的环境,在该进程的最后)一个命令(在Unix类环境中的env,我相信在DOS中设置.bat文件存在,在Windows中设置.cmd文件类似)将环境输出到其标准输出或文件;父进程可以读取该文件并将更改应用于其自己的环境.
在Unix中,subprocess.Popen(‘thescript; env’,shell = True,stdout = …)就足够了.在Windows中,我不确定传递为第一个参数foo.bat;集会工作;如果没有,只需创建一个微小的临时“辅助蝙蝠”,然后设置foo.bat,然后运行那个.