Компиляция pygraphviz: нераспознанный параметр командной строки '-mno-cygwin'

В Windows 7 при попытке скомпилировать pygraphviz я запускаю

    python setup.py build -c mingw32

я получил

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: ошибка: нераспознанный параметр командной строки '-mno-cygwin' ошибка: команда ' gcc' не удалось со статусом выхода 1

Откуда взялся этот «-mno-cygwin»? Поиск в каталоге pygraphviz-1.1 не выявил появления «no-cygwin».


person Dan Hook    schedule 27.11.2012    source источник


Ответы (2)


См. этот ответ: https://stackoverflow.com/a/6035864/1516291

Короче говоря, вам может потребоваться изменить distutils\cygwinccompiler.py в каталоге установки Python, чтобы удалить следы -mno-cygwin.

person Wang Tang    schedule 12.12.2012
comment
Важно отметить, что этот параметр существует в файле setup.py нескольких пакетов, например, «pip install cx_Oracle» завершится ошибкой с тем же сообщением. Исходный файл необходимо загрузить, чтобы можно было редактировать setup.py. - person foszter; 05.12.2014

У меня была та же проблема, которая была исправлена ​​путем замены экземпляров строки «-mno-cygwin» на «» в C:\Python27\Lib\distutils\cygwinccompiler.py

т.е. исходный код:

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

Обновленный код:

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

Какую версию компилятора GCC вы используете? У вас не возникнет этой проблемы, если вы используете GCC 3.4.4, в противном случае вам нужно заменить строку «-mno-cygwin» пустыми кавычками, как указано выше, особенно для GCC 4.3.7.

person Khokhar    schedule 24.01.2014