为Python 2.7构建/安装C模块时出错

Olu*_*ide 11 python visual-studio-2008

我正在尝试安装/编译ctools for 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
Run Code Online (Sandbox Code Playgroud)
  • 操作系统:Windows 7 Professional 64位(Service Pack 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']
Run Code Online (Sandbox Code Playgroud)

我按照这里的建议安装了PyWin ,但没有用.我很感激帮助解决这个问题.

编辑

尝试安装时会出现同样的问题 scikit-learn

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

小智 20

我在上面的博客中总结了一下. 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.可以从(C++安装程序名称为vcsetup.exe)获得主Visual Studio 2008 Express安装程序:

  2. 安装Microsoft Windows SDK.可以通过搜索Microsoft的下载站点或直接访问以下网址获得Microsoft Windows SDK: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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将.../VC/bin/vcvars64.bat复制到.../VC/bin/vcvarsamd64.bat

  5. 将.../VC/bin/vcvars64.bat复制到.../VC/bin/amd64/vcvarsamd64.bat

  • 我已经很久没遇到这个问题了,这是我发现的唯一有用的东西! (3认同)

PAT*_*PAT 18

一旦安装了适用于Windows 7和.NET Framework 3.5 SP1的Microsoft Windows SDK (安装Visual Studio 2008 SP1 Express Edition时未安装的64位编译器),就可以使用64位版本的Python了.您需要将其复制vcvars64.batvcvarsall.bat 声明它的位置.

%CSIDL_PROGRAM_FILESX86%\Microsoft Visual Studio 9.0\VC\bin\,您需要复制 vcvars64.batamd64\vcvarsamd64.bat.

请注意目标文件名中的amd部分.