尝试构建基本的python扩展示例失败(windows)

时间:2011-01-08 19:36:58

标签: python c build distutils

我在Win7 x64机器上运行Python 2.6和Visual Studio 2008。 当我尝试在python 2.6源代码分发中的c“example_nt”中构建基本的python扩展示例时,它失败了:

python setup.py build

这导致:

running build
running build_ext
building 'aspell' extension
Traceback (most recent call last):
  File "setup.py", line 7, in <module>
    ext_modules = [module1])
  File "C:\Python26\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python26\lib\distutils\dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
    cmd_obj.run()
  File "C:\Python26\lib\distutils\command\build.py", line 134, in run
    self.run_command(cmd_name)
  File "C:\Python26\lib\distutils\cmd.py", line 333, in run_command
    self.distribution.run_command(command)
  File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
    cmd_obj.run()
  File "C:\Python26\lib\distutils\command\build_ext.py", line 343, in run
    self.build_extensions()
  File "C:\Python26\lib\distutils\command\build_ext.py", line 469, in build_extensions
self.build_extension(ext)
  File "C:\Python26\lib\distutils\command\build_ext.py", line 534, in build_extension
depends=ext.depends)
  File "C:\Python26\lib\distutils\msvc9compiler.py", line 448, in compile
self.initialize()
  File "C:\Python26\lib\distutils\msvc9compiler.py", line 358, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Python26\lib\distutils\msvc9compiler.py", line 274, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [u'path']

我该怎么做才能解决这个问题?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

对于Win7 x64机器的Python 2.6(x64)机器,您需要安装
适用于Windows 7和.NET Framework 3.5 SP1的Microsoft Windows SDK 请参阅
的说明 http://wiki.cython.org/64BitCythonExtensionsOnWindows

商业Visual Studio 2008适用于Python 2.6,2.7和2.8 在32位x86设置上。

答案 1 :(得分:0)

我会避免为此安装Windows SDK和VS 2008。

我相信你遇到的问题是由于VS 2008没有64位编译器。要检查这一点,请找到包含vcvarsall.bat的目录(在VS 2008目录中搜索C:\ Program Files(x86)\ Microsoft Visual Studio 9.0)。找到vcvarsall.bat后,在其所在的目录中打开cmd提示符并键入.\vcvarsall.bat amd64 如果不是问题,您会看到Setting environment for using Microsoft Visual Studio 2008 x64 tools. 如果这是问题,您将收到一条消息,说明有关配置的信息。这很容易解决。

VS的快速版本没有64位编译器。解决方案也是安装SDK,但是很麻烦且不可靠,因此MS在一次下载中提供了所有编译器:http://www.microsoft.com/en-gb/download/details.aspx?id=44266

一旦下载了编译器,如果不能直接使用,您可以在此处关注我的帖子: pyusb 2.7 windows install error