2010-07-21 3 views
56

ich konfiguriert MinGW und distutils so dass ich jetzt Erweiterungen mit diesem Befehl kompilieren:Wie man MinGW GCC-Compiler bei der Installation von Python-Paket mit Pip verwenden?

setup.py install 

MinGW gcc-Compiler verwendet, und Paket installiert werden wird. Dafür habe ich installiert MinGW und created distutils.cfg-Datei mit folgendem Inhalt:

[build] 
compiler = mingw32 

Es ist cool, aber jetzt würde Ich mag alle pip Vorteile nutzen. Gibt es eine Möglichkeit, denselben gcc-Compiler von MinGW in pip zu verwenden? So dass, wenn ich laufe dies:

pip install <package name> 

pip wird MinGW gcc-Compiler und C-Code kompilieren, wenn nötig?

Momentan erhalte ich diesen Fehler: Unable to find vcvarsall.bat. Scheint Pip weiß nicht, dass ich GCC-Compiler habe. Wie kann ich pip konfigurieren, um gcc-Compiler zu verwenden?

+2

Noch ein Tipp: Stellen Sie sicher, dass die Datei * distutils.cfg * und nicht * distutils.cfg.txt * heißt. Manchmal fügt Windows gerne die Erweiterung * .txt * hinzu, wenn Sie eine neue Textdatei erstellen. – sffc

Antwort

4

Vielleicht haben Sie disttitils.cfg nicht an der richtigen Stelle platziert? Ich löste das gleiche Problem, indem ich eine Datei namens pydistutils.cfg in c: \ Dokumente und Einstellungen \ myuser mit dem gleichen Inhalt wie deine erstellte. Ich habe es so gemacht und es funktioniert. HTH

+0

Danke für den Vorschlag, obwohl ich diese Sachen nicht mehr mache :) – demalexx

+3

Ich habe eine Datei pydistutils.cfg mit '[build] compiler = mingw32' in mein msys $ HOME-Verzeichnis (c: \ mingw \ msys \ 1.0 \ home \ ) und dann rufe ich pip aus meiner msys shell. Das funktioniert für mich sowohl innerhalb als auch außerhalb von virtualenvs. @ Paolo, es macht Sinn, wenn Sie eine CMD-Shell verwenden, dann würden Sie es in% USERPROFILE% setzen, was HOME für Windows ist. –

88
  • installieren MinGW mit C++ Compiler Option aktiviert
  • C:\MinGW\bin
  • in PYTHONPATH\Lib\distutils zu Ihrem PATH hinzufügen, erstellen Sie eine Datei distutils.cfg und fügen Sie die folgenden Zeilen:

[build] compiler=mingw32

+2

Die Erstellung der Datei distutils.cfg hat das für mich gelöst - ich habe versucht, ein Paket mit pip zu installieren und habe den gefürchteten Fehler "Unable to find vcvarsall.bat" gefunden. Vielen Dank. –

+13

Denken Sie daran, dass Sie dies für den Python in Ihrem virtualenv ändern sollten, wenn Sie einen verwenden. – markijbema

+5

Danke. Immer noch langweilig. Wenn nur Pip eine '-Compiler'-Option https: // github hätte.com/pypa/pip/issues/18 bitte wiegen in –

14

Obwohl Konfigurationsdatei löst dieses Problem, es ist nicht immer eine Option. Ich hatte das gleiche Problem bei der Installation meiner Befehlszeile und konnte die Konfigurationsdateien auf allen Maschinen und Python-Distributionen nicht ändern.

Dies ist meine Lösung:

Für mingw32 und Pakete, die VC++ verwenden als Standard:

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

Für Visual C++ auf WinPython, die mingw32 als Standard verwendet:

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