我有一个.pyx模块,一直在尝试通过各种方式将其编译为可在64位Windows上使用的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
- 已安装Microsoft Windows SDK for Windows 7和.NET Framework 4
- 在C:\Program Files (x86)中似乎有一些Microsoft Visual Studio 10.0相关的东西,包括vcvarsall.bat
也欢迎不依赖于distutils的解决方案。
--- 编辑:附加信息
我现在已经修改了distutils,以识别mingw-w64,就像http://bugs.python.org/issue11723所述。然后我使用gendef和dlltool制作了libpython34.a,但是出现错误。
c:\Python34\libs/libpython34.a: file not recongnized: File truncated
运行时
python setup.py build_ext --inplace --compiler=mingw64