virtualenv

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

@ if $arguments as lowercase contain 'artful' @>

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte diesen Artikel testen und das getestet-Tag entsprechend anpassen.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Einen Terminal öffnen

Inhaltsverzeichnis
  1. Installation
    1. Paketverwaltung
    2. Manuelle Installation
    3. Direkte Nutzung ab Python 3.3
  2. Benutzung
    1. virtualenv
    2. venv (aus Python 3)
    3. pip in einer virtuellen Umgebung Nutzen
    4. Deinstallation von virtuellen Umgebungen...
  3. Links

Wiki/Icons/python.png virtualenv {en} ist die Kurzform für „Virtual Environment“ und dient zum Einrichten von ein oder mehreren unabhängigen Python-Umgebungen.

Standardmäßig werden alle Python-Module - egal ob über die Paketverwaltung oder den Python Package Index {en} installiert, in die allgemeine Systemumgebung installiert. Aus Kompatibilitätsgründen oder zu Testzwecken möchte man aber eventuell ältere oder neuere Module installieren, ohne die „Standardinstallation“ zu gefährden. Hier kommt virtualenv ins Spiel, welches voneinander isolierte Python-Umgebungen erzeugt, in welchen dann beliebige Python-Module installiert werden können, ohne das Hauptsystem oder andere Umgebungen zu "stören".

Installation

Paketverwaltung

virtualenv ist in Ubuntu 14.04 über das Paket

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-virtualenv 

sudo aptitude install python-virtualenv 

aus den Paketquellen installierbar[1].

Unter Ubuntu 16.04 installiert man das Paket:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install virtualenv 

sudo aptitude install virtualenv 

Manuelle Installation

Die neueste Version lässt sich über den Python Package Index mittels pip installieren. Das Python-Modul für virtualenv heißt ebenfalls einfach nur virtualenv. Es ist auch für Python 3 verfügbar.

Direkte Nutzung ab Python 3.3

Seit Python 3.3 ist ein Modul zum Erzeugen einer virtuellen Pythonumgebung auch direkt Python enthalten, das Modul heißt venv.

Allerdings ist diese nur bei Ubuntu 14.04 mit installiert, bei Ubuntu 16.04 muss zusätzlich das Paket

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python3-venv 

sudo aptitude install python3-venv 

installiert werden.

Benutzung

Je nach dem, ob man virtualenv oder das in Python 3 enthaltene Module venv nutzt, ist die Bedienung leicht unterschiedlich.

virtualenv

Die Benutzung von virtualenv läuft über die beiden Kommandozeilen-Befehle virtualenv und source, wie im folgenden Beispiel gezeigt wird.

Mit dem Aufruf

virtualenv /home/BENUTZER/python-test 

würde im Homeverzeichnis von BENUTZER eine neue virtuelle Python-Umgebung namens python-test angelegt. Der Name der Testumgebung und auch der Pfad sind wählbar. Als Pfad bietet sich aber eigentlich immer das Homeverzeichnis an. Während der Installation wird automatisch der aktuell im System installierte Python-Interpreter installiert. Unter Ubuntu 16.04 und 14.04 ist dies also Python 2.7. Möchte man eine virtuelle Umgebung mit Python 3 anlegen, so muss zusätzlich die Option -p python3.5 (Xenial) bzw. -p python3.4 (Trusty) angegeben werden.

Außerdem wird automatisch pip (Trusty) mit installiert. Python-Modul, die systemweit installiert sind, werden nicht automatisch mit in die virtuelle Umgebung kopiert, diese anlegen "leer".

Hat man virtualenv manuell für Python 3 installiert, dann lautet der Befehl virtualenv-3.4 (Trusty) bzw. virtualenv-3.5 (Xenial). Allerdings wird auch hier standardmäßig Python 2.7 in der virtuellen Umgebung eingerichtet, so dass auch hier ggf. die Option -p eingesetzt werden muss.

Hat man ein virtuelle Umgebung angelegt, muss man diese noch aktivieren. Für das obige Beispiel lautet der Befehl:

source /home/BENUTZER/python-test/bin/activate 

Darauf hin ändert sich das Shell-Prompt, es ist ein (python-test) vorangestellt. Dies hat für das normale Arbeiten in der Shell keinerlei Einfluss, allerdings startet der Aufruf von python bzw. python3 jetzt das Python aus der virtuellen Umgebung, nicht die global installierte Version.

Um die virtuelle Umgebung zu verlassen, beendet man das Terminal mit exit bzw. je nach eingesetzter Version von virtualenv durch die Eingabe von deactivate.

venv (aus Python 3)

Das in Python 3 (ab Python 3.3) enthaltene Modul venv lässt sich über den folgenden Befehl nutzen:

python3 -m venv /home/BENUTZER/python-test 

Dieser würde im Homeverzeichnis von BENUTZER eine virtuelle Umgebung namens python-test anlegen. Die Aktivierung der virtuellen Umgebung erfolgt genau so wie bei virtualenv, also über den Befehl source bin/active.

Unter Ubuntu 14.04 ist leider die zusätzliche Angabe einer Option notwendig:

python3 -m venv --without-pip /home/BENUTZER/python-test 

Die Option --without-pip ist aufgrund eines Bugs (siehe Bugreport 1290847) notwendig, da der Befehl sonst mit einer Fehlermeldung abbricht. Allerdings wird auch dadurch nicht pip in die virtuelle Umgebung mit kopiert - dieses muss man also bei Bedarf manuell erledigen.

Um pip manuell zu installieren, wechselt man in das gerade angelegte Verzeichnis (in diesem Fall python-test) aktiviert die virtuelle Umgebung und installiert pip manuelle, wie im Wikiartikel zu pip beschrieben.

pip in einer virtuellen Umgebung Nutzen

Hat man pip sowohl in der virtuellen Umgebung als auch systemweit installiert, dann führt auch bei aktivierter virtueller Umgebung der Befehl pip immer die systemweit installierte Version aus, womit die Python-Module auch systemweit installiert werden - und nicht in der virtuellen Umgebung.

Um das pip der virtuellen Umgebung zu nutzen, muss man diese explizit aufrufen. Befindet man sich im Pfad der aktivierten virtuellen Umgebung (in diesem Fall python-test), dann lautet der Programmaufruf:

bin/pip BEFEHL [OPTIONEN] MODUL 

So werden die Python-Module nur innerhalb der virtuellen Umgebung installiert.

Deinstallation von virtuellen Umgebungen

Eine Deinstallation im eigentlichen Sinne ist nicht notwendig. Es reicht, das für die virtuelle Umgebung angelegte Verzeichnis inklusive Unterverzeichnissen zu löschen.