在Windows上使用Cygwin编译Python扩展
我在编译一个Python扩展的时候遇到了很大的麻烦,希望有人能帮帮我。
我最开始尝试运行 'python.exe setup.py build',但是收到了一个错误提示:'Python是用Visual Studio 2003构建的;扩展必须使用能够生成兼容二进制文件的编译器来构建...'。
于是我下载了Cygwin,并尝试使用 '-c mingw32' 这个选项。控制台里输出了几行信息,然后我又收到了一个错误信息:命令 'gcc' 失败:权限被拒绝。
我最开始是用Visual Studio 2010的命令行来做这个,但换成bash后也得到了同样的结果。
我花了不少时间研究这个问题,发现Cygwin对gcc和g++使用了符号链接,而Windows不太懂怎么处理这个。
我到底该怎么强制让setup.py使用gcc-3.exe,而不是gcc.exe的符号链接呢?
1 个回答
3
我知道这样做不太优雅,但你可以把符号链接重命名,然后把gcc-3.exe复制成gcc.exe。这样做在我使用Cygwin的gcc时是有效的。你可能想换成mingw64-i686(或者mingw64-x86_64)这个包来获取gcc 4.5.3,或者直接单独安装MinGW-w64,这样可以在Windows上编译。
另外,你可以在PythonXX\Lib\distutils\distutils.cfg中永久配置distutils:
[build]
compiler = mingw32
[build_ext]
compiler = mingw32
[build_clib]
compiler = mingw32