无法编译Cython代码 - 无法识别的命令行选项'-mno-cygwin'

时间:2012-10-23 20:20:26

标签: python numpy cygwin cython

我正在尝试将一些Python / Numpy代码编译成Cython以加速。我可以在我的桌面上编译得很好 - 我将我的.pyx Cython文件复制到我的笔记本电脑上运行它并在尝试编译之后,我收到以下错误:

C:\Python27\MATH7450>python setup.py build_ext --inplace
running build_ext
cythoning heat.pyx to heat.c
building 'heat' extension
C:\strawberry\c\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\lib\site-pa
ckages\numpy\core\include -IC:\Python27\include -IC:\Python27\PC -c heat.c -o bu
ild\temp.win32-2.7\Release\heat.o
cc1.exe: error: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1

我正在运行Windows 7 64位。我看到它正在使用草莓perl。我安装了32位版本的草莓perl。再次,它在我的桌面上运行得很好,但在移植到笔记本电脑时出现这个奇怪的错误。

2 个答案:

答案 0 :(得分:2)

根据Windows installation instructions of Cython,推荐的编译器是免费的Visual C ++ 2008 Express,可以从脱机安装Visual Studio 2008 Express iso安装。

另外Cython can use the MinGW and its gcc,虽然这是reportedly more difficult route

从问题中包含的输出中,Cython尝试使用 Strawberry Perl 发行版附带的MinGW安装。

我的建议是安装 Visual C ++ 2008 Express ,根据我的经验,它最适合编译Cython或其他Python C扩展模块。

答案 1 :(得分:1)

-mno-cygwin中的

Python\Lib\distutils\cygwinccompiler.py会导致此问题:请参阅Compiling with cython and mingw produces gcc: error: unrecognized command line option '-mno-cygwin'http://korbinin.blogspot.com/2013/03/cython-mno-cygwin-problems.html。我的Python发行版(Anaconda)的cygwinccompiler.py虽然没有。无论如何,在删除-mno-cygwin类定义中的所有Mingw32CCompiler后,您应该能够编译。