Итак, моя переменная пути (System-> Adv Settings-> Env Vars-> System-> PATH) установлена в:
C:\Python26\Lib\site-packages\PyQt4\bin;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Python26\;
C:\Python26\Scripts\;
C:\cygwin\bin;
"C:\PathWithSpaces\What_is_this_bullshit";
"C:\PathWithSpaces 1.5\What_is_this_bullshit_1.5";
"C:\PathWithSpaces (2.0)\What_is_this_bullshit_2.0";
"C:\Program Files (x86)\IronPython 2.6";
"C:\Program Files (x86)\Subversion\bin";
"C:\Program Files (x86)\Git\cmd";
"C:\Program Files (x86)\PuTTY";
"C:\Program Files (x86)\Mercurial";
Z:\droid\android-sdk-windows\tools;
Хотя, очевидно, без перевода строки.
Обратите внимание на строки, содержащие PathWithSpaces
- у первого нет пробелов, у второго - пробел, а у третьего - пробел, за которым следует скобка.
Теперь обратите внимание на вывод этого пакетного файла:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\>vcvars32.bat
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin>"C:\Program Files (x86
)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
\What_is_this_bullshit_2.0";"C:\Program was unexpected at this time.
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin> set "PATH=C:\Pro
gram Files\Microsoft SDKs\Windows\v6.0A\bin;C:\Python26\Lib\site-packages\PyQt4\
bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\
WindowsPowerShell\v1.0\;C:\Python26\;C:\Python26\Scripts\;C:\cygwin\bin;"C:\Path
WithSpaces\What_is_this_bullshit";"C:\PathWithSpaces 1.5\What_is_this_bullshit_1
.5";"C:\PathWithSpaces (2.0)\What_is_this_bullshit_2.0";"C:\Program Files (x86)\
IronPython 2.6";"C:\Program Files (x86)\Subversion\bin";"C:\Program Files (x86)\
Git\cmd";"C:\Program Files (x86)\PuTTY";"C:\Program Files (x86)\Mercurial";Z:\dr
oid\android-sdk-windows\tools;"
или конкретно строка:
\What_is_this_bullshit_2.0";"C:\Program was unexpected at this time.
Итак, что это за фигня?
В частности:
- Каталог в пути, который правильно экранирован кавычками, но без пробелов = штраф
- Каталог в пути, который корректно экранируется кавычками и имеет пробелы, но без скобок = штраф
- Каталог в пути, правильно экранированный кавычками, с пробелами и круглыми скобками = ОШИБКА
Что тут происходит? Как я могу это исправить? Я, вероятно, прибегну к точке соединения, чтобы мои инструменты все еще работали как обходной путь, но если у вас есть какое-либо понимание этого, пожалуйста, дайте мне знать :)