2012-11-27 9 views
17

W Windows 7, gdy próbuje skompilować pygraphviz, biegnęKompilacja pygraphviz: opcja wiersza poleceń Nierozpoznany '-mno-cygwin'

python setup.py build -c mingw32 

uzyskać

C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-IC:\Program Files (x86)\Graphv iz 2.28\include\graphviz" -Ic:\Python27\include -Ic:\Python27\PC -c pygraphviz/g raphviz_wrap.c -o build\temp.win-amd64-2.7\Release\pygraphviz\graphviz_wrap.o cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1

Gdzie jest, że „-mno -cygwin pochodzi z? Przeglądanie katalogu pygraphviz-1.1 nie wykazuje żadnych "nie-cygwin".

Odpowiedz

18

Zobacz tę odpowiedź: https://stackoverflow.com/a/6035864/1516291

w skrócie, może trzeba zmodyfikować distutils\cygwinccompiler.py w instalacji Pythona dir, aby usunąć ślady -mno-cygwin.

+1

Należy zauważyć, że ta opcja istnieje w pliku setup.py kilku pakietów, na przykład "instalacja pip cx_Oracle" nie powiedzie się z tą samą wiadomością. Plik źródłowy musi zostać pobrany, aby można było edytować plik setup.py. – foszter

3

miałem ten sam problem, który został ustalony przez zastąpienie wystąpień ciągu "-mno-cygwin" z "" w C:\Python27\Lib\distutils\cygwinccompiler.py

tj kod oryginalny:

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

zaktualizowany kod:

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

Jakiej wersji kompilatora GCC używasz? Nie dostaniesz tego problemu, jeśli używasz GCC 3.4.4. W przeciwnym razie musisz zastąpić ciąg "-mno-cygwin" pustymi cytatami, jak wspomniano powyżej, szczególnie w GCC 4.3.7.