Python 3.4:编译用于64位窗口的cython模块

我有一个.pyx模块,我一直试图通过各种方式编译用于Windows上的64位python 3.4,但没有成功。

经过大量的试验和错误,它与编译

python setup.py build_ext --inplace --compiler=mingw32 

但是,当然,这不适用于64位的Python。

用msvc作为编译器,错误是

 File "C:\Python34\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall raise ValueError(str(list(result.keys()))) ValueError: ['path'] 
  • Windows 7的
  • 安装了用于Windows 7和.NET Framework 4的Microsoft Windows SDK
  • 在C:\ Program Files(x86)中似乎有一些Microsoft Visual Studio 10.0的东西(包括vcvarsall.bat)

解决scheme不围绕distutils也是受欢迎的。

—编辑:其他信息

我现在修改distutils来识别mingw-w64按照http://bugs.python.org/issue11723 。 然后我使用gendef和dlltool创build了libpython34.a,但是得到一个错误

 c:\Python34\libs/libpython34.a: file not recongnized: File truncated 

运行时

 python setup.py build_ext --inplace --compiler=mingw64 

好吧,终于我设法使它工作。

Christoph Gohlke的精彩资源( http://www.lfd.uci.edu/~gohlke/pythonlibs )是关键。

  1. 以传统方式安装您所需的Python版本
  2. 从Gohlke的网站安装你需要的任何扩展
  3. http://tdm-gcc.tdragon.net/download安装MinGW-w64
  4. 补丁distutils按照http://bugs.python.org/issue11723
  5. 从Gohlke的站点安装适当版本的libpython
  6. 鲍勃的叔叔

(为了这个任务尝试各种各样的狂野建议,我已经经历了更多的步骤,但据我所知,这些是唯一实际上在最终有所作为的)