Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
pip ist ein Akronym für Pip Installs Python und ist eine Paketverwaltung für Python-Module. Es ist expliziter Ersatz und indirekter Nachfolger für das ältere easy_install
aus den Python Setuptools
Im direkten Vergleich orientiert sich die Syntax von pip an der von anderen Paketverwaltern, wie z.B. APT. Mehr Details zu den Unterschieden zwischen pip und easy_install findet man in der Dokumentation von pip.
pip installiert Python-Module, welche im Python Package Index aufgeführt sind. Außerdem besteht die Möglichkeit, Module direkt aus den Versionskontrollsystemen Subversion, Git, Mercurial und Bazaar zu laden und dann zu installieren.
Alle via pip installieren Module befinden sich bei globaler Installation im Verzeichnis /usr/local/lib/pythonVERSION/dist-packages/ bzw. einem Unterverzeichnis davon. Bei Verwendung von pip in Kombination mit virtualenv befinden sich die Module innerhalb des Modulverzeichnisse des "virtual environements".
Ab Python 3.4 ist das pip-Modul in der Standardinstallation von Python enthalten, so dass eine nachträgliche Installation entfällt.
pip kann direkt aus den Paketquellen installiert werden[1]:
python3-pip (universe, ab Ubuntu 12.10)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install python3-pip
sudo aptitude install python3-pip
bzw. für Python 2:
python-pip (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install python-pip
sudo aptitude install python-pip
Wer eine neuere Version von pip als die aus den Paketquellen benötigt oder das unten beschriebene Problem bei Ubuntu 14.04 hat, der ruft den Link https://bootstrap.pypa.io/get-pip.py
im Browser oder mittels wget auf, um das Installationsprogramm herunterzuladen. Mit dessen Hilfe kann sowohl die pip-Version für Python 2 als auch für Python 3 installiert werden.
Sollte der Browser die Datei nicht zum Download anbieten, sondern „nur“ im Browserfenster den Quelltext anzeigen, so öffnet man einfach einen Texteditor, kopiert den kompletten Quelltext aus dem Browserfenster und fügt ihn im Editor ein. Danach speichert man die Datei unter dem Namen get-pip.py in einem beliebigen Verzeichnis, z.B. im Homeverzeichnis.
Danach wechselt man in dieses Verzeichnis und ruft zur Installation der Python 2 Version den folgenden Befehl auf[2][3]:
sudo python get-pip.py
bzw. für die Python 3 Version:
sudo python3 get-pip.py
Jetzt installiert sich pip ins Verzeichnis /usr/local/bin und ist dann einsatzbereit.
Fremdsoftware kann das System gefährden.
Anmerkung: Module aus dem Python Package Index werden an der Paketverwaltung „vorbei“ installiert. Dies birgt zwar an sich gesehen keine Konflikte, kann aber zu unvorhergesehen Ergebnissen oder Problemen mit Python-Skripten führen, wenn das gleiche Python Modul auch über die Paketverwaltung installiert wird, zumal mittels pip
installierte Module denen aus der Paketverwaltung vorgezogen werden.
Je nach dem, ob pip nachträglich installiert wurde oder die in Python 3.4 enthaltene Version genutzt wird, unterscheidet sich die Nutzung leicht.
pip ist ein Kommandozeilenprogramm. Die allgemeine Syntax für die Python 2 Version lautet[2]:
pip BEFEHL OPTIONEN
Für Python 3 lautet der Befehl pip3
(statt nur pip
).
Wenn mittels des Befehls ein Modul systemweit installiert oder deinstalliert wird, dann muss pip mit Root-Rechten aufgerufen werden[3]. Bei der Verwendung innerhalb eines virtual environments wird sudo
nicht benötigt.
Einige Befehle sind:
Befehle von pip | |
Befehl | Erklärung |
install MODUL | installiert das Modul MODUL |
uninstall MODUL | deinstalliert das Modul MODUL |
freeze | zeigt die Version aller installierten Python-Module an |
Eine komplette Übersicht findet man in den Man-Pages oder über den Aufruf von
pip -h
Die Optionen variieren je nach Befehl. Die vielleicht am häufigsten Option ist -U
in Kombination mit install
, wobei U
für "Update" steht. Es wird dann geprüft, ob eine neuere Version des Moduls zur Verfügung steht. Falls ja wird diese installiert.
Eine Übersicht über die jeweiligen Optionen erhält man über den Aufruf
pip BEFEHL -h
also z.B.:
pip install -h
Wie bereits in der Einleitung erwähnt, kann pip auch Module direkt aus einem Versionskontrollsystem herunterladen. Details dazu findet man in der offiziellen Dokumentation .
Die in Python 3.4 enthaltene Version von pip lässt sich wie folgt nutzen:
python3 -m pip BEFEHL
wobei BEFEHL
die gleichen Befehle sein können wie oben und im folgenden gezeigt. Soll das zu installierende Modul systemweit verfügbar sein, muss auch dieser Befehl mit root-Rechten ausgeführt werden.
Der folgende Befehl installiert das Modul "markdown" systemweit:
sudo pip install markdown
[sudo] password for otto: Downloading/unpacking markdown Downloading Markdown-2.2.1.zip (362Kb): 362Kb downloaded Running setup.py egg_info for package markdown Installing collected packages: markdown Running setup.py install for markdown changing mode of build/scripts-2.7/markdown_py from 644 to 755 Converting docs/release-2.1.0.txt -> build/docs/release-2.1.0.html Converting docs/change_log.txt -> build/docs/change_log.html (...) changing mode of /usr/local/bin/markdown_py to 755 Successfully installed markdown Cleaning up...
Die Deinstallation sieht so aus:
sudo pip uninstall markdown
[sudo] password for otto: Uninstalling Markdown: /usr/local/bin/markdown_py /usr/local/lib/python2.7/dist-packages/Markdown-2.2.1.egg-info /usr/local/lib/python2.7/dist-packages/markdown Proceed (y/n)? y Successfully uninstalled Markdown
Mit dem folgenden Befehl wird ein Modul aktualisiert, hier im Beispiel "u1db":
sudo pip install -U u1db
Downloading/unpacking u1db from https://launchpad.net/u1db/trunk/0.1.4/+download/u1db-0.1.4.tar.bz2 Downloading u1db-0.1.4.tar.bz2 (193Kb): 193Kb downloaded Running setup.py egg_info for package u1db warning: no files found matching 'Makefile' Downloading/unpacking dirspec from https://launchpad.net/dirspec/stable-4-2/4.1.2/+download/dirspec-4.1.2.tar.gz (from u1db) Downloading dirspec-4.1.2.tar.gz Running setup.py egg_info for package dirspec Requirement already up-to-date: paste in ./Paste-1.7.5.1-py2.7.egg (from u1db) Real name of requirement routes is Routes Requirement already up-to-date: routes in ./Routes-1.13-py2.7.egg (from u1db) Requirement already up-to-date: repoze.lru>=0.3 in ./repoze.lru-0.6-py2.7.egg (from routes->u1db) Installing collected packages: u1db, dirspec Found existing installation: u1db 0.1.2 Uninstalling u1db: Successfully uninstalled u1db Running setup.py install for u1db changing mode of build/scripts-2.7/u1db-client from 644 to 755 changing mode of build/scripts-2.7/u1db-serve from 644 to 755 warning: no files found matching 'Makefile' changing mode of /usr/local/bin/u1db-client to 755 changing mode of /usr/local/bin/u1db-serve to 755 Found existing installation: dirspec 4.0.0 Uninstalling dirspec: Successfully uninstalled dirspec Running setup.py install for dirspec Successfully installed u1db dirspec Cleaning up...
Wie an der Ausgabe zu sehen ist, prüft pip direkt, ob die Abhängigkeiten des Moduls ebenfalls aktuell sind. Sonst werden diese auch auf den neusten Stand gebracht.
Der folgende Befehl zeigt die Versionsnummer aller installierter Python-Module - auch derer, die über die Paketverwaltung von Ubuntu installiert wurden:
pip freeze
CouchDB==0.8 GnuPGInterface==0.3.2 Mako==0.7.1 MarkupSafe==0.15 PAM==0.4.2 PIL==1.1.7 Paste==1.7.5.1 Routes==1.13 Twisted-Core==12.2.0 Twisted-Names==12.2.0 Twisted-Web==12.2.0 ...
Hat man die Paketverwaltung pip manuell mit dem Script get-pip.py installiert, kann man diese mit folgendem Befehl wieder deinstallieren.
Python 3:
sudo python3 -m pip uninstall pip
Python 2:
sudo python -m pip uninstall pip
Da bei der Installation automatisch auch (wenn noch nicht vorhanden) die Python Setuptools installiert werden, kann man den Befehl noch mit setuptools erweitern, falls man die setuptools nicht benötigt:
sudo python3 -m pip uninstall pip setuptools
bzw. Python 2:
sudo python -m pip uninstall pip setuptools
Unter Ubuntu 14.04 kann es beim Paket python-pip aus den offiziellen Paketquellen zu Problemen kommen. Eine Installation ist zwar möglich, der Start von pip bricht aber mit einer Fehlermeldung ab. Der zugehörige Bugreport bei Launchpad trägt die Nummer 1306991. In diesem Fall muss pip erst komplett deinstalliert und dann manuell installiert werden.
Diese Revision wurde am 29. Januar 2017 14:04 von aasche erstellt.