我有一个.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)的奇妙资源是关键。
- 以传统方式安装所需的 Python 版本
- 从Gohlke的网站安装您需要的任何扩展
- 从 http://tdm-gcc.tdragon.net/download 安装 MinGW-w64
- Patch distutils as per http://bugs.python.org/issue11723
- 从Gohlke的网站安装适当版本的libpython
- 鲍勃的叔叔
(尝试了各种疯狂的建议,我已经经历了更多的步骤,但据我所知,这些是唯一最终真正有所作为的步骤)