Python 3.4:为64位窗口编译cython模块

时间:2014-12-15 16:04:01

标签: windows python-3.x cython distutils mingw-w64

我有一个.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)

也不欢迎围绕distutils的解决方案。

---编辑:补充信息

我现在已根据http://bugs.python.org/issue11723修改了distutils以识别mingw-w64。然后我使用gendef和dlltool制作了libpython34.a,但是收到错误

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

运行时

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

1 个答案:

答案 0 :(得分:6)

好的,我终于成功了。

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

  1. 以传统方式安装所需的Python版本
  2. 从Gohlke网站
  3. 安装您需要的任何扩展程序
  4. http://tdm-gcc.tdragon.net/download
  5. 安装MinGW-w64
  6. 根据http://bugs.python.org/issue11723
  7. 修补distutils
  8. 从Gohlke网站
  9. 安装适当版本的libpython
  10. 鲍勃的叔叔
  11. (为这项任务尝试各种各样的疯狂建议,我已经经历了更多的步骤,但据我所知,这些是唯一真正有效的结果)