Suche…


Einführung

pip ist der am häufigsten verwendete Paketmanager für den Python Package Index und wird standardmäßig mit den neuesten Versionen von Python installiert.

Syntax

  • pip <Befehl> [Optionen] wobei <Befehl> einer der folgenden Werte ist:
    • Installieren
      • Pakete installieren
    • deinstallieren
      • Pakete deinstallieren
    • einfrieren
      • Installierte Pakete im Anforderungsformat ausgeben
    • Liste
      • Installierte Pakete auflisten
    • Show
      • Informationen zu installierten Paketen anzeigen
    • Suche
      • Suchen Sie bei PyPI nach Paketen
    • Rad
      • Bauen Sie Räder nach Ihren Anforderungen
    • Postleitzahl
      • Einzelne Pakete komprimieren (veraltet)
    • entpacken
      • Einzelne Pakete entpacken (veraltet)
    • bündeln
      • Pybundles erstellen (veraltet)
    • Hilfe
      • Hilfe für Befehle anzeigen

Bemerkungen

Manchmal führt pip eine manuelle Erstellung von nativem Code durch. Unter Linux wählt python automatisch einen verfügbaren C-Compiler auf Ihrem System. In der folgenden Tabelle finden Sie die erforderliche Visual Studio / Visual C ++ - Version unter Windows (neuere Versionen funktionieren nicht.)

Python-Version Visual Studio-Version Visual C ++ - Version
2,6 - 3,2 Visual Studio 2008 Visual C ++ 9.0
3.3 - 3.4 Visual Studio 2010 Visual C ++ 10.0
3,5 Visual Studio 2015 Visual C ++ 14.0

Quelle: wiki.python.org

Pakete installieren

So installieren Sie die neueste Version eines Pakets mit dem Namen SomePackage :

$ pip install SomePackage

So installieren Sie eine bestimmte Version eines Pakets:

$ pip install SomePackage==1.0.4

So legen Sie eine Mindestversion für die Installation eines Pakets fest:

$ pip install SomePackage>=1.0.4

Wenn in Befehlen unter Linux / Unix die Berechtigung verweigert wird, verwenden Sie sudo mit den Befehlen


Installieren Sie aus Anforderungsdateien

$ pip install -r requirements.txt

Jede Zeile der Anforderungsdatei gibt an, dass etwas installiert werden muss, und wie bei Argumenten für die Pip-Installation. Details zum Format der Dateien finden Sie hier: Anforderungsdateiformat .

Nach der Installation des Pakets können Sie es mit dem freeze Befehl überprüfen:

$ pip freeze

Pakete deinstallieren

So deinstallieren Sie ein Paket:

$ pip uninstall SomePackage

Um alle Pakete aufzulisten, die mit `pip` installiert wurden

So listen Sie installierte Pakete auf:

$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)

Um veraltete Pakete aufzulisten und die neueste verfügbare Version anzuzeigen:

$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)

Aktualisieren Sie Pakete

Laufen

$ pip install --upgrade SomePackage 

aktualisiert das Paket SomePackage und alle seine Abhängigkeiten. Außerdem entfernt pip vor dem Upgrade automatisch eine ältere Version des Pakets.

Um ein Upgrade von pip selbst durchzuführen, tun Sie dies

$ pip install --upgrade pip

auf Unix oder

$ python -m pip install --upgrade pip

auf Windows-Maschinen.

Aktualisierung aller veralteten Pakete unter Linux

pip enthält nicht aktuell ein Flag, mit dem ein Benutzer alle veralteten Pakete auf einmal aktualisieren kann. Dies kann jedoch erreicht werden, indem Befehle in einer Linux-Umgebung zusammengeführt werden:

pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

Dieser Befehl nimmt alle Pakete in der lokalen Virtualenv und prüft, ob sie veraltet sind. Aus dieser Liste erhält er den Paketnamen und leitet diesen an einen Befehl pip install -U . Am Ende dieses Prozesses sollten alle lokalen Pakete aktualisiert werden.

Aktualisierung aller veralteten Pakete unter Windows

pip enthält nicht aktuell ein Flag, mit dem ein Benutzer alle veralteten Pakete auf einmal aktualisieren kann. Dies kann jedoch erreicht werden, indem Befehle in einer Windows-Umgebung zusammengeführt werden:

for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i

Dieser Befehl nimmt alle Pakete in der lokalen Virtualenv und prüft, ob sie veraltet sind. Aus dieser Liste erhält er den Paketnamen und leitet diesen an einen Befehl pip install -U . Am Ende dieses Prozesses sollten alle lokalen Pakete aktualisiert werden.

Erstellen Sie eine Requirements.txt-Datei aller Pakete im System

pip unterstützt Sie bei der Erstellung von requirements.txt Dateien, indem Sie die Option freeze angeben.

pip freeze > requirements.txt

Dadurch wird eine Liste aller auf dem System installierten Pakete und ihrer Version in einer Datei mit dem Namen requirements.txt im aktuellen Ordner gespeichert.

Erstellen Sie eine Requirements.txt-Datei mit Paketen nur in der aktuellen virtualenv

pip unterstützt Sie bei der Erstellung von requirements.txt Dateien, indem Sie die Option freeze angeben.

pip freeze --local > requirements.txt

Der Parameter --local gibt nur eine Liste von Paketen und Versionen aus, die lokal in einer virtuellen Umgebung installiert sind. Globale Pakete werden nicht aufgelistet.

Verwenden einer bestimmten Python-Version mit Pip

Wenn Sie sowohl Python 3 als auch Python 2 installiert haben, können Sie angeben, welche Python-Version Sie pip verwenden möchten. Dies ist nützlich, wenn Pakete nur Python 2 oder 3 unterstützen oder wenn Sie mit beiden testen möchten.

Wenn Sie Pakete für Python 2 installieren möchten, führen Sie Folgendes aus:

pip install [package]

oder:

pip2 install [package]

Wenn Sie Pakete für Python 3 installieren möchten, gehen Sie wie folgt vor:

pip3 install [package]

Sie können auch die Installation eines Pakets für eine bestimmte Python-Installation aufrufen mit:

\path\to\that\python.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux

Auf OS-X / Linux / Unix-Plattformen ist es wichtig, sich über die Unterscheidung zwischen der Systemversion von Python (die Aktualisierung macht Ihr System funktionsunfähig) und der Benutzerversion (en) von Python zu unterscheiden. Sie können, je nachdem , welche Sie aktualisieren wollen, müssen Sie diese Befehle mit Präfix sudo und ein Kennwort.

Ebenso können unter Windows einige Python-Installationen, insbesondere solche, die Teil eines anderen Pakets sind, in Systemverzeichnissen installiert werden - diese müssen Sie von einem Befehlsfenster aus im Admin-Modus aus aktualisieren - falls Sie das Gefühl haben, dass dies erforderlich ist Dies ist eine sehr gute Idee, um zu überprüfen, welche Python-Installation Sie mit einem Befehl wie python -c"import sys;print(sys.path);" oder py -3.5 -c"import sys;print(sys.path);" Sie können auch überprüfen, welchen Pip Sie mit pip --version ausführen pip --version

Wenn Sie unter Windows sowohl Python 2 als auch Python 3 installiert haben und Ihr Pfad und Ihr Python 3 größer als 3,4 sind, haben Sie wahrscheinlich auch den Python Launcher py auf Ihrem Systempfad. Sie können dann Tricks machen wie:

py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present

Wenn Sie mehrere Versionen von Python virtualenv und venv empfiehlt es sich dringend, sich über die virtuellen Umgebungen von Python virtualenv oder venv denen Sie sowohl die Version von Python als auch die vorhandenen Pakete isolieren können.

Pakete installieren, die noch nicht auf dem Rohr als Räder montiert sind

Viele reine Python-Pakete sind im Python-Paketindex noch nicht als Laufräder verfügbar, können aber dennoch problemlos installiert werden. Einige Pakete unter Windows geben jedoch den Fehler "dreaded vcvarsall.bat nicht gefunden" aus.

Das Problem ist, dass das Paket, das Sie installieren möchten , eine C- oder C ++ - Erweiterung enthält und derzeit nicht als vordefiniertes Rad aus dem Python- Paketindex pypi und unter Windows zur Verfügung steht , über die Sie nicht die zum Erstellen erforderliche Werkzeugkette haben solche Artikel.

Die einfachste Antwort lautet, auf die exzellente Site von Christoph Gohlke zu gehen und die entsprechende Version der benötigten Bibliotheken zu finden. Durch die Angabe des Paketnamens muss ein -cp NN - mit Ihrer Python-Version übereinstimmen, dh, wenn Sie Windows-32-Bit-Python verwenden, auch unter win64, muss der Name -win32- enthalten, und wenn Sie den 64-Bit-Python verwenden, muss er -win_amd64 enthalten - und dann muss die Python-Version übereinstimmen, dh für Python 34 muss der Dateiname -cp 34- usw. enthalten. Dies ist im Grunde die Magie, die pip auf der pypi-Site für Sie tut.

Alternativ benötigen Sie das entsprechende Windows-Entwicklungskit für die verwendete Python-Version, die Header aller Bibliotheken, zu denen das Paket, mit dem Sie versuchen, Schnittstellen zu erstellen, möglicherweise die Python-Header für die Python-Version usw. erstellt werden.

Python 2.7 verwendete Visual Studio 2008, Python 3.3 und 3.4 verwendeten Visual Studio 2010 und Python 3.5+ verwendete Visual Studio 2015.

  • Installieren Sie das " Visual C ++ Compiler Package for Python 2.7 ", das auf der Website von Microsoft oder unter http://www.support.microsoft.com/ zur Verfügung steht
  • Installieren Sie „ Windows SDK für Windows 7 und .NET Framework 4 “ (v7.1), das auf der Website von Microsoft oder verfügbar ist
  • Installieren Sie die Visual Studio 2015 Community Edition (oder eine spätere Version, wenn diese veröffentlicht wird) und stellen Sie sicher , dass Sie die Optionen für die Installation der C & C ++ - Unterstützung nicht mehr als Standard festlegen. Es wird gesagt, dass das Herunterladen und Installieren bis zu 8 Stunden dauern kann Stellen Sie daher sicher, dass diese Optionen beim ersten Versuch eingestellt sind.

Dann müssen Sie möglicherweise die Header-Dateien in der entsprechenden Revision für alle Bibliotheken suchen, auf die Ihr gewünschtes Paket verweist, und diese an geeignete Speicherorte herunterladen.

Endlich können Sie pip erstellen lassen - natürlich, wenn das Paket Abhängigkeiten hat, die Sie noch nicht haben, müssen Sie möglicherweise auch die Header-Dateien für sie finden.

Alternativen: Es ist auch empfehlenswert , sowohl auf der Website von pypi als auch auf Christops Seite nach einer etwas früheren Version des Pakets zu suchen, nach der Sie suchen. Es handelt sich dabei entweder um reinen Python oder für Ihre Plattform und Python-Version vorgefertigte Versionen gefunden, bis Ihr Paket verfügbar ist. Wenn Sie die neueste Version von Python verwenden, werden Sie möglicherweise feststellen, dass die Paketbetreuer etwas Zeit benötigen , um auf den neuesten Stand zu kommen. Für Projekte, die wirklich ein bestimmtes Paket benötigen , müssen Sie im Moment einen etwas älteren Python verwenden. Sie können auch auf der Quellwebsite des Pakets nachsehen, ob eine gegabelte Version vorgefertigt oder als reiner Python verfügbar ist und nach alternativen Paketen sucht, die die erforderliche Funktionalität bereitstellen, aber verfügbar sind - ein Beispiel, das Ihnen in den Sinn kommt Kissen , aktiv gewartet , fallen als Ersatz für PIL derzeit nicht in 6 Jahren aktualisiert und sind nicht für Python 3 verfügbar .

Danach würde ich jeden, der dieses Problem hat, dazu ermutigen, zum Bug-Tracker für das Paket zu gehen und ein Ticket hinzuzufügen oder, falls noch nicht vorhanden, höflich aufzufordern, dass die Paketbetreuer ein Rad auf pypi für Ihr spezielles Fahrzeug zur Verfügung stellen Kombination von Plattform und Python. Wenn dies geschehen ist, werden die Dinge normalerweise mit der Zeit besser. Einige Paketbetreuer wissen nicht, dass sie eine bestimmte Kombination verpasst haben, die die Leute verwenden.

Hinweis zum Installieren von Pre-Releases

Pip folgt den Regeln von Semantic Versioning und bevorzugt freigegebene Pakete den Vorabversionen. Wenn ein bestimmtes Paket als V0.98 und es auch einen Veröffentlichungskandidaten V1.0-rc1 das Standardverhalten von pip install die Installation von V0.98 Wenn Sie den Veröffentlichungskandidaten installieren möchten, werden Sie empfohlen Um zuerst in einer virtuellen Umgebung testen zu können, können Sie dies mit --pip install --pre Paketname oder --pip install --pre --upgrade Paketname --pip install --pre --upgrade . In vielen Fällen verfügen Pre-Releases oder Release-Kandidaten möglicherweise nicht über Räder, die für alle Plattform- und Versionskombinationen geeignet sind, sodass die oben genannten Probleme wahrscheinlicher sind.

Hinweis zum Installieren von Entwicklungsversionen

Sie können pip auch verwenden, um Entwicklungsversionen von Paketen von Github und anderen Standorten zu installieren. Da ein solcher Code im Fluss ist, ist es sehr unwahrscheinlich, dass Räder für ihn erstellt werden. Für unreine Pakete sind daher die Build-Tools erforderlich jederzeit gebrochen sein, so dass der Benutzer dringend aufgefordert wird, solche Pakete nur in einer virtuellen Umgebung zu installieren.

Für solche Installationen gibt es drei Optionen:

  1. Laden Sie die komprimierte Momentaufnahme herunter, die meisten Online-Versionskontrollsysteme haben die Möglichkeit, eine komprimierte Momentaufnahme des Codes herunterzuladen. Dieser kann manuell heruntergeladen und dann mit dem pip install / to / downloads / file pip install werden. Beachten Sie, dass pip für die meisten Komprimierungsformate das Entpacken in einen Cache-Bereich usw. übernimmt.
  2. Überlassen Sie pip das Herunterladen und Installieren für Sie mit: pip install URL / von / package / repository - möglicherweise müssen Sie auch die --trusted-host , --client-cert und / oder --proxy richtig, vor allem in einer Unternehmensumgebung. z.B:
    > py -3.5-32 -m venv demo-pip
    > demo-pip\Scripts\activate.bat
    > python -m pip install -U pip
    Collecting pip
      Using cached pip-9.0.1-py2.py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Uninstalling pip-8.1.1:
          Successfully uninstalled pip-8.1.1
    Successfully installed pip-9.0.1
    > pip install git+https://github.com/sphinx-doc/sphinx/
    Collecting git+https://github.com/sphinx-doc/sphinx/
      Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
    Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
      Using cached Jinja2-2.9.6-py2.py3-none-any.whl
    Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
      Using cached Pygments-2.2.0-py2.py3-none-any.whl
    Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
      Using cached docutils-0.13.1-py3-none-any.whl
    Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
      Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
    Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
      Using cached Babel-2.4.0-py2.py3-none-any.whl
    Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
      Using cached alabaster-0.7.10-py2.py3-none-any.whl
    Collecting imagesize (from Sphinx==1.7.dev20170506)
      Using cached imagesize-0.7.1-py2.py3-none-any.whl
    Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
      Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting typing (from Sphinx==1.7.dev20170506)
      Using cached typing-3.6.1.tar.gz
    Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
    Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
      Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
    Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
      Using cached colorama-0.3.9-py2.py3-none-any.whl
    Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
      Using cached MarkupSafe-1.0.tar.gz
    Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
        100% |################################| 5.2MB 220kB/s
    Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
        100% |################################| 471kB 1.1MB/s
    Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
      Running setup.py install for MarkupSafe ... done
      Running setup.py install for typing ... done
      Running setup.py install for sqlalchemy ... done
      Running setup.py install for Sphinx ... done
    Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4

Beachten Sie das git+ -Präfix der URL.

  1. Klonen Sie das Repository mit git , mercurial oder anderen akzeptablen Werkzeug, vorzugsweise ein DVCS - Tool, und verwenden Sie pip install path / to / geklonten / repo - Dies wird sowohl Prozess jede requires.text Datei und führen Sie die Build- und Konfigurationsschritte können Sie manuell ändern Verzeichnis zu Ihrem geklonten Repository und führen Sie pip install -r requires.txt und dann python setup.py install , um denselben Effekt zu erzielen. Der große Vorteil dieses Ansatzes besteht darin, dass der anfängliche Klonvorgang möglicherweise länger dauert als der Download des Snapshots. Sie können jedoch mit git: git pull origin master auf den neuesten Stand bringen, und wenn die aktuelle Version Fehler enthält, können Sie die pip uninstall Paketname Verwenden Sie dann git checkout Befehle, um durch den Repository-Verlauf zu früheren Versionen zu gelangen und es erneut zu versuchen.


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow