2012-03-10 18 views
7

sto cercando di imparare molto python su Windows e che include l'installazione di diversi pacchetti, tuttavia ogni volta che richiamo python setup.py install ho un problema con -mno -cygwin per gcc.Python: -mno -cygwin

Ho letto già molti articoli e sembra che vogliano che questi singoli pacchetti attenderanno la correzione delle proprie build.

qualcuno può semplicemente fornirmi una versione gcc che posso installare che supporta ancora -mno -cygwin in modo da poter continuare a studiare le aree che vorrei mettere a fuoco?

grazie!

+1

L'opzione -mno-cygwin deprecata è stata rimossa in gcc 4.7.0. Vedi [questa domanda] (http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o) per maggiori dettagli. –

risposta

18

Ho avuto anche questo problema, e questo è un bug nel codice Python. L'unico modo per risolverlo era modificare il file C:\Python27\Lib\distutils\cygwinccompiler.py.

In questo file è necessario rimuovere ogni occorrenza di -mno-cygwin.

Lo stesso vale per GCC installato tramite MinGW.

+0

Giusto per chiarire questo, ci dovrebbero essere solo quattro occorrenze, in 'Mingw32CCompiler .__ init__'. La correzione dovrebbe essere affidabile. – brianmearns

1

Ho avuto lo stesso problema che è stato risolto sostituendo le istanze della stringa "-mno-Cygwin" con "" nel C:\Python27\Lib\distutils\cygwinccompiler.py

cioè

Codice originale:

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)) 

Codice aggiornato:

Quale versione del compilatore GCC si fa uso? Non si otterrà questo problema se si utilizza GCC 3.4.4 altrimenti è necessario sostituire la stringa "-mno-cygwin" con virgolette vuote come sopra menzionato, specialmente per GCC 4.3.7.