Python Language
pip: PyPI-Paketmanager
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
- Installieren
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 |
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:
- 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 / filepip install
werden. Beachten Sie, dass pip für die meisten Komprimierungsformate das Entpacken in einen Cache-Bereich usw. übernimmt. - Ü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.
- Klonen Sie das Repository mit
git
,mercurial
oder anderen akzeptablen Werkzeug, vorzugsweise ein DVCS - Tool, und verwenden Siepip 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 Siepip install -r requires.txt
und dannpython 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 diepip uninstall
Paketname Verwenden Sie danngit checkout
Befehle, um durch den Repository-Verlauf zu früheren Versionen zu gelangen und es erneut zu versuchen.