ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
Wikipip

pip

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

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 {en} von pip.

pip installiert Python-Module, welche im Python Package Index {en} 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

pip kann direkt aus den Paketquellen installiert werden[1]:

  • python-pip (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-pip 

sudo aptitude install python-pip 

bzw. für Python 3:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python3-pip 

sudo aptitude install python3-pip 

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.

pip ist ein Kommandozeilenprogramm. Die allgemeine Syntax lautet[2]:

pip BEFEHL OPTIONEN 

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 {en}.

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 markdwon 
[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
...
ubuntuusers.local › Wikipip