Ошибки при сборке/установке модуля 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
  • ОС: 64-разрядная версия Windows 7 Professional (Service Pack 1)
  • Установлено: Microsoft Visual С++ 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, как предлагается в здесь, но это не помогло. Я был бы признателен за помощь в устранении этой проблемы.

Edit

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

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

Ответ 1

Я кратко изложил это в своем блоге. http://springflex.blogspot.com/2014/02/how-to-fix-valueerror-when-trying-to.html

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

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

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

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

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

  • скопировать.../VC/bin/vcvars64.bat в... /VC/bin/amd 64/vcvarsamd64.bat

Ответ 2

Так как вы используете 64-разрядную версию Python, как только вы установили Microsoft Windows SDK для Windows 7 и .NET Framework 3.5 с пакетом обновления 1 (что устанавливает 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 в имени целевого файла.

Ответ 3

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

Ответ 4

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

Ответ 5

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