Ошибка значения, пытающаяся установить расширения Python для Windows

У меня уже установлен Microsoft Visual Studio 2008. Я загрузил zip-файл Python для расширений Windows и извлек содержимое в папку Python27. Теперь есть подпапка под названием pywin32-214. (Является ли 32-разрядная проблема проблемой? Я на 64-битной системе.) Вот сценарий из командной строки:

C:\Python27\pywin32-214>setup.py -q install Building pywin32 2.7.214.0 Traceback (most recent call last): File "C:\Python27\pywin32-214\setup.py", line 2152, in <module> ('', ('pywin32.pth',)), File "C:\Python27\lib\distutils\core.py", line 152, in setup dist.run_commands() File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands self.run_command(cmd) File "C:\Python27\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Python27\pywin32-214\setup.py", line 1251, in run install.run(self) File "C:\Python27\lib\distutils\command\install.py", line 563, in run self.run_command('build') File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command self.distribution.run_command(command) File "C:\Python27\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Python27\pywin32-214\setup.py", line 596, in run build.run(self) File "C:\Python27\lib\distutils\command\build.py", line 127, in run self.run_command(cmd_name) File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command self.distribution.run_command(command) File "C:\Python27\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run self.build_extensions() File "C:\Python27\pywin32-214\setup.py", line 858, in build_extensions self.compiler.initialize() File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize vc_env = query_vcvarsall(VERSION, plat_spec) File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsal l raise ValueError(str(list(result.keys()))) ValueError: [u'path'] 

Я не знаю, что с этим делать. Помогите?

Если у вас установлена ​​64-битная установка Python:

Установите «Microsoft Visual Studio 2008 Professional Edition» с включенной опцией «Компилятор и инструменты X64».

Кроме того, скачайте pywin32-214.win-amd64-py2.7.exe из http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

Еще одной возможной причиной появления этой проблемы является то, что вы только что установили Visual Studio, и приглашение командной строки, которое вы используете, зависало с момента установки.

Это связано с тем, что установщик MSVC устанавливает несколько переменных среды, и одна из этих переменных (VS90COMNTOOLS) должна быть установлена ​​для правильной работы vcvarsall.bat . Но каждая работающая программа в Windows содержит собственную локальную копию переменных окружения, которая наследуется (копируется) из родительского процесса при запуске ребенка. Таким образом, после того, как ребенок запустился, он не получает изменений, выполненных на envvars на системном уровне. И единственный способ получить обновленные переменные среды – это зарождение нового экземпляра дочернего процесса с родителем, у которого есть обновленная версия envvars.

Как сказано, он пытается использовать 32-битный компилятор для 64-битного питона. Я смог успешно построить:

  1. Поиск vcvarsx86_amd64.bat в C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64 (зависит от вашей установки)
  2. Откройте приглашение cmd
  3. Запустите SET VS90COMNTOOLS=%VS120COMNTOOLS% (зависит от настройки, см. https://stackoverflow.com/a/10558328/2362877 )
  4. Запустить vcvarsx86_amd64.bat
  5. Затем pip install <package>

Ни один из этих ответов не работал для меня, но я нашел решение для отслеживания проблем:

  1. Открыть cmd.
  2. cd "C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin"
  3. Тип vcvars32.bat или vcvars64.bat
  4. В том же приглашении и без закрытия: cd обратно к модулю Python, который вы пытаетесь установить.
  5. Теперь код должен быть установлен.

Источник: http://bugs.python.org/issue7511

Если вы исправлены на 64-битной версии Python 2.7 (например, я) и слишком дешевы, чтобы купить VS2008 Professional, вы также можете скачать VS2008 Express и установить Windows 7 SDK для получения совместимого 64-битного компилятора бесплатно. После этого запустите сценарий SetEnv.Cmd для Windows 7 SDK, а затем setup.py:

 > "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" > setup.py -q install 

SetEnv.Cmd должен настроить все переменные среды, необходимые для сборки. Когда он запускается, должно появиться сообщение с надписью «Ориентация Windows 7 x64 Debug». Вы также можете использовать эту команду для компиляции в режиме Release:

 > "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release > setup.py -q install 

Расширения Python для Windows поддерживаются только

32-разрядные MS Windows (95/98), 32-разрядные MS Windows (NT / 2000 / XP), все 32-разрядные MS Windows (95/98 / NT / 2000 / XP), Win2K, WinXP, WinCE

Взято с страницы проекта sourceforge . Похоже, вам может быть не повезло!

EDIT: Однако … чтение этого, похоже, подразумевает иное.

Я попробовал все остальные ответы и многое другое. Завершена установка 32-разрядной версии python, которая сразу устраняет проблему.

Если это вариант, это, скорее всего, самое простое исправление.