python - 如何设置vsvars32环境变量?

标签 python visual-studio-2008 environment-variables scons

我正在努力为 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/

相关文章:

python - 单击在 python selenium 中不起作用

visual-studio - 一次更新解决方案中所有项目的引用路径

c++ - 带有发布配置的 MySQL++ 的编译器警告

python - 如何根据句号 '.' 在 python 中中断一个句子?

python - 如何确定 GPU 在我的操作系统上是否可用?

Python文件关键字参数?

preprocessor - VC6 设置附加包含使用环境变量的路径?

visual-studio-2008 - ffmpeg 最新的 Visual Studio 构建或与 (.a) 库链接

linux - 无法将 Genymotion 路径添加到 PATH 变量 linux xubuntu

c# - 在类库中执行asp.net core EF迁移,无需硬编码连接字符串