2012-03-10 17 views
7

estoy tratando de aprender mucho de python en Windows y eso incluye la instalación de varios paquetes, sin embargo cada vez que invoco la instalación de python setup.py tengo un problema con -mno -cygwin para gcc.Python: -mno -cygwin

He leído ya muchos artículos y parece que quieren que estos paquetes individuales esperen la solución en sus propias compilaciones.

¿Alguien puede proporcionarme una versión de gcc que pueda instalar que aún admita -mno -cygwin para que pueda seguir estudiando las áreas en las que me gustaría enfocar?

gracias!

+1

La opción obsoleta -mno-cygwin se eliminó en gcc 4.7.0. Ver [esta pregunta] (http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o) para más detalles. –

Respuesta

18

Tuve este problema también, y esto es un error en el código de Python. La única forma que encontré para solucionarlo fue editando el archivo C:\Python27\Lib\distutils\cygwinccompiler.py.

En este archivo debe eliminar todas las apariciones de -mno-cygwin.

Lo mismo aplica para GCC instalado a través de MinGW.

+0

Solo para aclarar esto, solo debe haber cuatro apariciones de él, en 'Mingw32CCompiler .__ init__'. La reparación debe ser confiable. – brianmearns

1

I tenían el mismo problema que se ha fijado mediante la sustitución de las instancias de la cadena "-mno-cygwin" con "" en el C:\Python27\Lib\distutils\cygwinccompiler.py

es decir

Código original:

self.set_executables(compiler='gcc -mno-cygwin -O -Wall', 
         compiler_so='gcc -mno-cygwin -mdll -O -Wall', 
         compiler_cxx='g++ -mno-cygwin -O -Wall', 
         linker_exe='gcc -mno-cygwin', 
         linker_so='%s -mno-cygwin %s %s' 
            % (self.linker_dll, shared_option, 
             entry_point)) 

Código actualizado:

self.set_executables(compiler='gcc "" -O -Wall', 
         compiler_so='gcc "" -mdll -O -Wall', 
         compiler_cxx='g++ "" -O -Wall', 
         linker_exe='gcc ""', 
         linker_so='%s "" %s %s' 
            % (self.linker_dll, shared_option, 
             entry_point)) 

¿Qué versión de compilador GCC hace usted ¿utilizar? No obtendrá este problema si utiliza GCC 3.4.4; de lo contrario, deberá reemplazar la cadena "-mno-cygwin" con comillas vacías, como se mencionó anteriormente, especialmente para GCC 4.3.7.