Windows / PyPi / PyCharm 编译某些 Cython 模块时链接错误
目前,我在Windows上使用PyCharm,并尝试通过PyPi安装一些软件包。为了方便,我使用了PyCharm自带的功能,这个功能基本上和命令行中的easy_install是一样的。
但是,当我安装需要用gcc编译的软件包时,遇到了一些错误。我在StackOverflow上浏览了很多关于之前错误的问题,并成功解决了一些错误(比如使用mingw64,删除setup脚本中的-mno-cygwin参数等等),但现在我在这个错误上完全卡住了:
build\temp.win-amd64-2.7\Release\cpyamf\amf0.o:amf0.c:(.text+0xb912): 找不到`__imp_PyExc_ImportError'的引用
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: build\temp.win-amd64-2.7\Release\cpyamf\amf0.o: 在`.data'部分的错误重定位地址0x78
collect2.exe: 错误: ld返回了退出状态1
错误: 命令'gcc'失败,退出状态为1
这个错误发生在安装PyAMF和Twisted时,它们的某些部分使用了cython。我还没有找到解决这个问题的方法。
提前感谢大家的帮助。
1 个回答
我在freenode的#python频道得到了大家的帮助,解决了这个问题。或者说,找到了一个替代办法。
问题的根本原因是我在Windows上使用了64位的Python,这和minGW64等工具不太兼容。
我安装了32位的Python,修改了distutils.cfg文件,解决了-mno-cygwin的问题,结果基本上就能直接用了。
所以如果还有其他人遇到这个问题:建议使用32位的Python。