即使在编辑PATH之后,也无法使CythonfindMinGW gcc编译器,在distutils中创build一个文件,删除-mno-cygwin的所有实例

我正在试图让cython意识到我有一个交stream编译器在MinGW 32位,我已经尝试了一切,我可以在网上find,但它仍然无法正常工作。 我正在运行Windows 7 Professional 64位。 这是我所尝试的:

(1)我有Python 2.7,我只是用选项gcc和g ++和其他一些选项安装了MinGW

(2)我编辑了PATH环境variables,因此包含它

C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin 

(3)我告诉Python通过创build一个名为的文件来使用MinGW作为默认的编译器

C:\ Python27 \ Lib \ distutils \ distutils.cfg,包含

 [build] compiler = mingw32 

(顺便说一句,我有MinGW32)

(4)我从文件C:\ Python27 \ Lib \ distutils \ cygwincompiler.py中删除了-mno-cygwin的所有实例

(5)我有一个名为setup.py的文件和一个名为trycython.pyx的模块,它是用python编写的。 我的setup.py说distutils.core从distutils.extension导入安装从Cython.Distutilsimport扩展导入build_ext

 setup( cmdclass = {'build_ext':build_ext}, ext_modules=[Extension("tryingcython",["tryingcython.pyx"])] ) 

所以然后我打开命令提示符,进入包含setup.py和tryingcython.pyx的目录,然后inputpython setup.py build_ext –inplace –compiler = mingw32

然后它告诉我:

 running build_ext skipping 'tryingcython.c' Cython extension (up-to-date) building 'tryingcython.c' extension gcc -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c tryingcython.c -o build\ temp.win32-2.7\Release\tryingcython.o error: command 'gcc' failed: No such file or directory 

所以我猜Cython不能告诉我有gcc,它找不到或者什么,即使我已经尝试了一些我可以在网上find的build议,让它意识到我有MinGW里面有gcc 。 任何帮助/关于如何让cython实际工作的其他想法将不胜感激。

您正在使用与我完全相同的操作系统和版本。

尝试使用以下命令调用gcc

 SET input=intput.c SET output=output.pyd gcc -shared -IC:\Python27\include -LC:\Python27\libs -O2 -o %output% %input% -lpython27 

通常我把这个调用放在一个cythongcc.bat文件中, PATH环境变量所识别的目录中:

 gcc -shared -IC:\Python27\include -LC:\Python27\libs -O3 -mtune=native -o %1.pyd %2.c -lpython27 

所以,我可以,从我的cython .pyx文件,只是做:

 cython input.pyx cythongcc input input 

获得编译的.pyd工作!