ubuntuusers.de

venv

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 Ein Virtual Environment 🇬🇧 (Kurzform: virtualenv oder ganz kurz: venv) dient zum Einrichten von ein oder mehreren unabhängigen Python-Umgebungen. Das in der Python-Standardbibliothek enthaltene Modul venv ist eine Abspaltung des virtualenv-Projektes 🇬🇧, die eingeschränkte Funktionalität bietet. Beispielsweise lassen sich nicht für willkürliche, auf dem System installierte Python-Versionen virtuelle Umgebungen erzeugen.

Normalerweise werden alle Python-Module in die allgemeine Benutzer- oder Systemumgebung installiert. Dies gilt sowohl für Installation über die Paketverwaltung als auch über den Python Package Index 🇬🇧. 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 das Virtual Environment ins Spiel. Diese erzeugt voneinander isolierte Python-Umgebungen, in welchen dann beliebige Python-Module installiert werden können, ohne das Hauptsystem oder andere Umgebungen zu "stören".

Technisch gesehen werden nur die Dateien der Python-Umgebungen voneinander isoliert, d.h. Virtual Environments sind sehr "leichtgewichtig". Es wird keine virtuelle Maschine oder Container-Technologie genutzt.

Installation

Ab Python 3.3 ist ein Modul zum Erzeugen einer virtuellen Pythonumgebung direkt in Python enthalten. Das Modul heißt venv.

Dafür muss zusätzlich das Paket

  • python3-venv (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install python3-venv 

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

installiert werden. Dabei wird das Modul immer für die Python-Version installiert, die das System standardmäßig nutzt. Hat man noch andere Python-Version aus den Paketquellen installiert, muss man zur Installation von venv für die Python-Version die Versionsnummer explizit mit angeben, also z.B. python3.9-venv

Benutzung

Zum Anlegen einer virtuellen Umgebung wird das venv-Modul direkt beim Aufruf des Python-Interpreters mit aufgerufen. Der Befehl

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

legt im Homeverzeichnis von BENUTZER eine virtuelle Umgebung namens venv-test an.

Hat man eine virtuelle Umgebung angelegt, muss man diese noch aktivieren. Passend zum obigen Beispiel lautet der Befehl:

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

Darauf hin ändert sich das Shell-Prompt, es ist ein (venv-test) vorangestellt. In einer virtuellen Umgebung wird automatisch pip mit installiert. Python-Module, 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.

Um Python-Module innerhalb der aktivierten virtuellen Umgebung zu installieren nutzt man die Version von pip der virtuellen Umgebung. Diese wird automatisch benutzt, wenn die virtuelle Umgebung aktiviert ist. Die Nutzung von pip erfolgt genau so wie im Artikel pip beschrieben.

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.

Alternativ zur Aktivierung lassen sich nun auch der Python-Interpreter und pip selber direkt aus dem bin/-Verzeichnis der virtuellen Umgebung aufrufen, was die gleichen Auswirkungen hat:

/home/BENUTZER/venv-test/bin/python3 --version 

Python 3.9.2
/home/BENUTZER/venv-test/bin/pip3 list --verbose 

Package       Version Location                                             Installer
------------- ------- ---------------------------------------------------- ---------
pip           20.3.4  /home/BENUTZER/venv-test/lib/python3.9/site-packages pip
pkg-resources 0.0.0   /home/BENUTZER/venv-test/lib/python3.9/site-packages pip
setuptools    44.1.1  /home/BENUTZER/venv-test/lib/python3.9/site-packages pip

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

  • Python - Hauptartikel

  • virtualenv 🇬🇧 - Originales Projekt, noch immer unter Entwicklung

Diese Revision wurde am 26. November 2023 10:18 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Programmierung