virtualenv

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

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

Man installiert das Paket[1]

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.

Dafür 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  #18.04
#bzw.
virtualenv /home/BENUTZER/pythin-test -p python3.5  #16.04 

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. Da dies unter Xenial aber noch Python 2.7 ist, sollte hier die Option -p python3.5 angegeben werden. Unter Bionic wird wird als Standard Python 3.6 installiert. Benötigt man wirklich noch Python 2.7., gibt man unter Bionic die Option -p python2.7 an bzw. lässt unter Xenial die Option -p ganz weg.

Außerdem wird automatisch pip mit installiert. Python-Modul, die systemweit installiert sind, werden nicht automatisch mit in die virtuelle Umgebung kopiert. In der virtuellen Umgebung sind somit "nur" die Module aus der Standardinstallation von Python sowie pip installiert

Hat man virtualenv manuell für Python 3 installiert, dann lautet der Befehl virtualenv-3.5. 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 python3 bzw. python jetzt das Python aus der virtuellen Umgebung, nicht die global installierte Version.

Um die virtuelle Umgebung zu verlassen, beendet man diese durch die Eingabe von deactivate am Shell-Prompt. Alternativ kann man das Terminal auch mit exit beenden.

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 ~/python-test/bin/activate.

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