代码之家  ›  专栏  ›  技术社区  ›  bua

如何设置vsvars32环境变量?

  •  2
  • bua  · 技术社区  · 15 年前

    我正在努力为Visual Studio 2008设置scons环境变量。
    通常我会这样做:

    %VS90COMNTOOLS%vsvars32.bat
    
    or 
    
    call %VS90COMNTOOLS%vsvars32.bat
    

    这在我的壳里有效。

    我尝试使用子进程在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':
    

    上面调用了批处理过程,但环境变量并没有从它继承到我的主进程。

    当我使用:

    子进程.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)
    

    如何做到这一点?

    2 回复  |  直到 12 年前
        1
  •  4
  •   CharlesB Craig McQueen    14 年前

    vsvars32.bat VARNAME=value os.environ

    see the source here

        2
  •  0
  •   Wolfgang Ulmer    15 年前

    for key in ['INCLUDE','LIB']:
        if os.environ.has_key(key):
            env.Prepend(ENV = {key.upper():os.environ[key]})
    

    env['ENV']