ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

pip

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/python.png 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".

Installation

Hinweis:

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]:

Befehl zum Installieren der Pakete:

sudo apt-get install python3-pip 

Oder mit apturl installieren, Link: apt://python3-pip

bzw. für Python 2:

  • python-pip (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install python-pip 

Oder mit apturl installieren, Link: apt://python-pip

Manuelle Installation

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.

Benutzung

Hinweis!

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.

Offizielle Paketquellen/Manuelle Installation

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 🇬🇧.

pip aus Python 3.4

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.

Beispiele

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
...

Manuelle Deinstallation

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 

Problembehebung

Ubuntu 14.04

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.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Paketverwaltung