2010-07-21 2 views
56

Я настроил MinGW и Distutils, так что теперь я могу компилировать расширения с помощью этой команды: GCC компиляторКак использовать gcc-компилятор MinGW при установке пакета Python с помощью Pip?

setup.py install 

MinGW будет использоваться и пакет будет установлен. Для этого я установил MinGW и created distutils.cfg файл следующего содержания:

[build] 
compiler = mingw32 

Это круто, но теперь я хотел бы использовать все преимущества пипсов. Есть ли способ использовать тот же самый компилятор MinGW gcc в pip? Так что, когда я запускаю это:

pip install <package name> 

pip будет использовать компилятор gcc MinGW и скомпилировать код C, если необходимо?

В настоящее время я получаю эту ошибку: Unable to find vcvarsall.bat. Кажется, pip не знает, что у меня есть gcc-компилятор. Как я могу настроить pip для использования gcc-компилятора?

+2

Другой совет: убедитесь, что файл называется * distutils.cfg *, а не * distutils.cfg.txt *. Иногда Windows нравится добавлять расширение * .txt * при создании нового текстового файла. – sffc

ответ

4

Возможно, вы не разместили distutils.cfg в нужном месте? Я решил ту же проблему, создав файл pydistutils.cfg внутри c: \ Documents and Settings \ myuser, с тем же содержимым, что и ваш. Я сделал это, и это работает. НТН

+0

Спасибо за предложение, хотя я больше этого не делаю :) – demalexx

+3

Я положил файл pydistutils.cfg с '[build] compiler = mingw32' в мой каталог myysys HOME (c: \ mingw \ msys \ 1.0 \ home \ ), а затем я вызываю pip из моей оболочки msys. Это отлично работает для меня как внутри, так и снаружи виртуальных. @Paolo, имеет смысл, что если вы используете CMD-оболочку, вы бы поставили ее в% USERPROFILE%, которая является HOME для Windows. –

88
  • установить MinGW с опцией C++ Compiler проверил
  • добавить C:\MinGW\bin в свой PATH
  • в PYTHONPATH\Lib\distutils, создайте файл distutils.cfg и добавьте следующие строки:

[build] compiler=mingw32

+2

Создание файла distutils.cfg - это то, что решило это для меня - я пытался установить пакет с пипсом и получил ужасную ошибку «Не удалось найти vcvarsall.bat». Благодарю. –

+13

Помните, что вы должны изменить это для python в своем virtualenv, если вы его используете. – markijbema

+5

Спасибо. Все еще утомительно. Если только Pip имел опцию '--compiler' https: // github.com/pypa/pip/issues/18 Пожалуйста, весите в –

14

Несмотря на то, файл конфигурации решает эту проблему, это не всегда вариант. У меня была такая же проблема для моего процесса установки в командной строке, и я не смог изменить файлы конфигурации на всех машинах и дистрибутивах python.

Это мое решение:

Для mingw32 и пакеты, которые используют VC++ по умолчанию:

pip install --global-option build_ext --global-option --compiler=mingw32 <package_zip> 

Для Visual C++ на WinPython, который использует mingw32 по умолчанию:

pip install --global-option build_ext --global-option --compiler=msvc <package_zip>