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



我有一个.pyx模块,我一直在尝试通过各种方式编译它以与Windows上的64位python 3.4一起使用,但没有成功。

经过大量的试验和错误,它确实编译了

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

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

使用 msvc 作为编译器,错误是

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

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

---编辑:附加信息

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

c:Python34libs/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. Patch distutils as per http://bugs.python.org/issue11723
  5. 从Gohlke的网站安装适当版本的libpython
  6. 鲍勃的叔叔

(尝试了各种疯狂的建议,我已经经历了更多的步骤,但据我所知,这些是唯一最终真正有所作为的步骤)

最新更新