我正在努力为 Visual Studio 2008 设置 scons 环境变量。
通常我会执行以下操作:
%VS90COMNTOOLS%vsvars32.bat
or
call %VS90COMNTOOLS%vsvars32.bat
这在我的 shell 中有效。
我尝试在 python 中使用子进程来做到这一点
subprocess.call([os.environ['VS90COMNTOOLS']+r"\vsvars32.bat"])
输出:
d:\N\workspace>scons test
scons: Reading SConscript files ...
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
KeyError: 'INCLUDE':
上面调用批处理,但环境变量不会从它继承到我的“主进程”。
当我使用时:
subprocess.call([os.environ['VS90COMNTOOLS']+r"\vsvars32.bat"])
我得到:
d:\N\workspace>scons test
scons: Reading SConscript files ...
WindowsError: [Error 2] The system cannot find the file specified:
File "D:\N\workspace\SConstruct", line 17:
subprocess.Popen(["call ", os.environ['VS90COMNTOOLS']+r"\vsvars32.bat"])
File "C:\Python26\lib\subprocess.py", line 595:
errread, errwrite)
File "C:\Python26\lib\subprocess.py", line 821:
startupinfo)
如何实现这一目标?
最佳答案
编写一个运行 vsvars32.bat
的批处理文件,然后以 VARNAME=value
形式输出值,然后让 Python 脚本解析这些值并将它们注入(inject)到os.environ
。
这是在 python 自己的 distutils 模块中完成的,see the source here .
关于python - 如何设置vsvars32环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905179/