Grundlagen
Ein Virtual Environment (venv) ist eine „virtuelle Umgebung“, in der eine Python‑Installation und die installierten Pakete für ein konkretes Projekt von der Python-Installation des Betriebssystems isoliert werden.

Sie wird auf einer bestehenden Python-Installation erstellt. Eingesetzt wird meist das Python Modul venv, um ein Virtual Environment einzurichten.
Unterschiedliche Projekte können jeweils eine separate virtuelle Umgebungen haben.

Jedes Projekt kann exakt die Python- Bibliotheken und Versionen verwenden, die es benötigt, ohne andere Projekte zu beeinflussen. So lässt sich vermeiden, dass ein Update einer Bibliothek in einem Projekt plötzlich Breakages in einem anderen verursacht.
Der globale Python‑Interpreter bleibt unverändert und frei von experimentellen Paketen. Das reduziert das Risiko, das Betriebssystem‑Python zu beschädigen – besonders wichtig auf Linux‑Distributionen, wo das System‑Python von vielen System‑Tools genutzt wird.
Durch das Dokumentieren der Paketliste eines Projekts (meist in einer requirements.txt‑Datei) kann man die komplette Entwicklungsumgebung leicht auf andere Rechner übertragen.
Einrichtung
Für das Erstellen und Verwalten. von Pyhton3 virtuellen Umgebungen wird das Paket python3-venv benötigt.
Unter Fedora (aktuell Fedora 42) ist das Paket meist bereits vorhanden. Falls nicht installieren Sie es mit
sudo def upgrade -y
sudo dnf install python3-venvauf Debian-basierten Systemen, Ubuntu, Linux Mint, muss es manuell installiert werden.
Im Terminal:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-venvFür die Einrichtung des Virtual Environment erstellen Sie zunächst einen Projektordner
mkdir myPythonund wechseln in das Verzeichnis:
cd myPythonDie Einrichtung erfolgt mit dem Befehl:
python -m venv .venvAnschließend muss das Virtual Environment noch aktiviert werden:
source .venv/bin/activateDadurch ändert sich der Prompt, der Name des .venv ist nun vorangestellt. Die bereits auf dem System vorhandenen Pakete werden in die virtuelle Umgebung übernommen.
Windows 11
Das Virtual Environment einrichten:
python -m venv envDabei ist env der Name des neuen Verzeichnisses für die Python-Umgebung. Sie können es auch anders benennen.
Aktivieren über die Standard-Eingabeaufforderung CMD:
.\env\Scripts\activate.batin der PowerShell:
.\env\Scripts\activate.ps1MacOS
Ist eine aktuelle Python3- Installation vorhanden, verwenden Sie zum Einrichten und Aktivieren die gleichen Befehle, wie oben für Linux beschrieben. Das Paket python3-venv muss hier nicht manuell installiert werden.
Virtual Environment verlassen
Sie verlassen die die virtuelle Umgebunt mit dem Befehl deactivate. Sollte ein Notebook-Server in der virtuellen Umgebung laufen, beenden Sie ihn vorher mit Ctrl + C.
Erneut öffnen
Um eine einmal eingerichtet Virtuelle Umgebung erneut zu öffnen wechseln Sie zunächst in das Verzeichnis, in unserem Beispiel:
cd myPythonund starten die venv (unter Ubuntu) mit
source .venv/bin/activatebzw. den oben für Windows angegebenen Befehlen.
Fehler nach dem Ändern der Verzeichnis-Struktur
Ein Virtual Environment ist im Wesentlichen ein Verzeichnis, das mehrere Dinge enthält:
- eine Kopie bzw. Symlink des Python‑Interpreters,
- ein bin‑ (oder Scripts‑) Verzeichnis mit Wrapper‑Skripten für python, pip usw.
- eine pyvenv.cfg‑Datei, die Metadaten über das Umfeld speichert, insbesondere den Pfad zum „originären“ Python‑Interpreter, mit dem das Umfeld erstellt wurde.
Wenn Sie das Projektverzeichnis, also das Verzeichnis, das das virtuelle Umfeld enthält, umbenennenn, passiert Folgendes:
Der absolute Pfad, unter dem das Umfeld jetzt liegt, ändert sich. Die Wrapper‑Skripte in bin/Scripts enthalten hartkodierte absolute Pfade zum Interpreter und zu anderen Ressourcen. Sie wurden beim Anlegen des Umfelds mit dem alten Pfad erzeugt und werden nach der Änderung nicht mehr gefunden.
Die meisten Dateien im virtuellen Umfeld speichern absolute Pfade, die beim Umbenennen des übergeordneten Ordners nicht automatisch aktualisiert werden. Deshalb „startet“ das Umfeld nicht mehr – python oder pip können nicht gefunden werden, und das Aktivierungsskript weist auf einen falschen Ort. Auch in darin installierter Jupyter Notebook-Server lässt sich dann nicht mehr starten.
Um das Problem zu beheben, löschen Sie das vorhandene Virtual Environment und erstellen ein neues. Sichern Sie vorher vorsorglich Ihre Python-Skripte oder Jupyter-Notebook-Dateien in einem separaten Verzeichnis.