我正在尝试将一些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。再次,它在我的桌面上运行得很好,但在移植到笔记本电脑时出现这个奇怪的错误。
答案 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
后,您应该能够编译。