я борюсь с установкой мои Scons переменные среды для Visual Studio 2008.
Обычно я следующее:Как настроить переменные среды vsvars32?
%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':
выше вызывает пакетный процесс, но переменные окружения не наследуется от него к моему «мастер-процесс.
Когда я использую:
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)
Как добиться этого?
Я не рассматривал этот способ, но кажется, что нет возможности сделать это с помощью библиотеки подпроцессов python (никаких скрытых скрытых опций;). Итак, я приму свой ответ. – bua
Причина, по которой это невозможно сделать, состоит в том, что каждый процесс имеет свою собственную среду, а среды могут передаваться только дочерним процессам, а не передаваться родительским процессам. Поэтому мы используем «внеполосный» метод связи, чтобы передать значения * * родителям. –