Ошибки при сборке / установке модуля C для Python 2.7

Я пытаюсь получить следующие ошибки при попытке установить / скомпилировать ctools для python (информация о версии)

ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:22:14) [MSC v.1500 64 bit (AMD64)] on win32
  • ОС: Windows 7 Профессиональная 64-битная (пакет обновления 1)
  • Установлено: Microsoft Visual C++ 2008 Express Edition

Ошибка:

building 'deap.cTools' extension
Traceback (most recent call last):
  File "setup.py", line 40, in <module>
    cmdclass = {'build_py': build_py}
  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\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\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\lib\distutils\command\build_ext.py", line 449, in build_extensions
    self.build_extension(ext)
  File "C:\Python27\lib\distutils\command\build_ext.py", line 499, in build_extension
    depends=ext.depends)
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
    self.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_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']

Я установил PyWin, как предложено здесь, но это не помогло. Буду признателен за помощь в решении этой проблемы.

редактировать

Та же проблема возникает при попытке установить scikit-learn

  File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']

5 ответов

Я резюмировал выше в моем блоге. http://springflex.blogspot.com/2014/02/how-to-fix-valueerror-when-trying-to.html

Чтобы установить Visual Studio 2008 Express Edition со всеми необходимыми компонентами:

  1. Установите Microsoft Visual Studio 2008 Express Edition. Основной установщик Visual Studio 2008 Express доступен по адресу (имя установщика C++ - vcsetup.exe):

  2. Установите Microsoft Windows SDK. Пакет Microsoft Windows SDK доступен на веб-сайте загрузки Microsoft или непосредственно по адресу: http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en

  3. Чтобы убедиться, что у вас установлены все компоненты, убедитесь, что Microsoft SDK содержит версию "amd64" компилятора C/C++ "cl.exe". Это обычно устанавливается в

    C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\cl.exe
    
  4. скопировать.../VC/bin/vcvars64.bat в.../VC/bin/vcvarsamd64.bat

  5. скопировать.../VC/bin/vcvars64.bat в.../VC/bin/amd64/vcvarsamd64.bat

Поскольку вы используете 64-разрядную версию Python, после установки Microsoft Windows SDK для Windows 7 и.NET Framework 3.5 SP1 (которая устанавливает 64-разрядный компилятор, который не устанавливается при установке Visual Studio 2008 SP1 Express Edition); Вам нужно скопировать vcvars64.bat в место, где vcvarsall.bat утверждает, что это так.

От %CSIDL_PROGRAM_FILESX86%\Microsoft Visual Studio 9.0\VC\bin\нужно скопировать vcvars64.bat в amd64\vcvarsamd64.bat,

Обратите внимание на часть amd в имени файла назначения.

Microsoft теперь публикует компилятор Visual C++ только для Python 2.7, хотя он будет работать для других версий Python, которые использовали тот же компилятор. Проверьте системные требования: требуется setuptools 6.0 или более поздняя версия. Он не будет работать с пакетами, использующими distutils.

Я столкнулся с этой проблемой, потому что у меня не было 64-разрядной версии Visual C++ 2008. Чтобы решить эту проблему, я установил ее с помощью команды "Изменить / Удалить в разделе" Программы и компоненты ", следуя этому ответу".

У меня была такая же проблема, но просто переименование файлов, перечисленных выше (несколько непрозрачным образом), не сработало для меня. То, что сработало, является гораздо более простым решением. Просто запустите vcvarsall.bat перед началом установки. Это устанавливает правильные пути и намного проще для понимания. В моем случае мне понадобилась 64-битная сборка, поэтому я запустил: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64

Другие вопросы по тегам