venv und virtualenv: Virtuelle Python-Umgebungen richtig nutzen

Lernen Sie, wie Sie mit venv und virtualenv virtuelle Python-Umgebungen erstellen, aktivieren und verwalten – für saubere und reproduzierbare Projekte.

Schritt-für-Schritt-Anleitung zur Nutzung virtueller Python-Umgebungen mit venv und virtualenv.
Highlights
  • Virtuelle Umgebungen isolieren Projektabhängigkeiten und verhindern Konflikte zwischen verschiedenen Paketversionen.
  • Mit venv erstellen Sie ab Python 3.3 schnell eine neue Umgebung über den Befehl python -m venv.
  • Eine aktivierte Umgebung gilt nur im aktuellen Terminal-Fenster und lässt sich mit deactivate wieder verlassen.

Virtuelle Python-Umgebungen sind ein unverzichtbares Werkzeug für jeden Entwickler, der sauber und reproduzierbar arbeiten möchte. Sie isolieren Projektabhängigkeiten, verhindern Konflikte zwischen verschiedenen Versionen derselben Bibliotheken und machen die Zusammenarbeit im Team deutlich einfacher. Mit den nativen Werkzeugen venv (für Python 3) und dem Drittanbieter-Tool virtualenv (auch für Python 2) lassen sich solche isolierten Umgebungen schnell erstellen und verwalten. Dieser Leitfaden zeigt Ihnen Schritt für Schritt, wie Sie virtuelle Python-Umgebungen richtig nutzen, konfigurieren und warten – vom Aktivieren über das Package-Management bis hin zum Upgraden.

Was ist eine virtuelle Python-Umgebung und warum brauchen Sie sie?

Eine virtuelle Umgebung (Virtual Environment, kurz venv) ist ein in sich geschlossenes Verzeichnis, das eine eigene Installation des Python-Interpreters sowie eigene Kopien von pipcodecode und setuptoolscodecode enthält. Alle Pakete, die Sie innerhalb dieser Umgebung installieren, bleiben strikt von anderen Umgebungen und der systemweiten Python-Installation getrennt. Das ist besonders wichtig, wenn Sie an mehreren Projekten mit unterschiedlichen Abhängigkeiten arbeiten: Projekt A benötigt Django 3.2, Projekt B setzt auf Django 4.1 – mit virtuellen Umgebungen wird das zum Kinderspiel.

Virtuelle Umgebungen mit venv erstellen und aktivieren

Ab Python 3.3 ist das Modul venvcodecode fester Bestandteil der Standardbibliothek. Um eine neue virtuelle Umgebung zu erstellen, öffnen Sie ein Terminal und führen Sie folgenden Befehl aus:

python -m venv /pfad/zu/ihrem/venvcodecode

Ersetzen Sie /pfad/zu/ihrem/venvcodecode durch das gewünschte Verzeichnis, zum Beispiel ./my_project_envcodecode. Das Modul erzeugt dann die gesamte Verzeichnisstruktur mit den erforderlichen Dateien.

Nach der Erstellung müssen Sie die Umgebung aktivieren. Die genaue Syntax hängt von Ihrem Betriebssystem und Ihrer Shell ab:

  • Unix oder macOS mit Bash-Shell: source /pfad/zu/venv/bin/activatecodecode
  • Unix oder macOS mit csh-Shell: source /pfad/zu/venv/bin/activate.cshcodecode
  • Unix oder macOS mit fish-Shell: source /pfad/zu/venv/bin/activate.fishcodecode
  • Windows mit Eingabeaufforderung: pfad\zu\venv\Scripts\activate.batcodecode
  • Windows mit PowerShell: pfad\zu\venv\Scripts\Activate.ps1codecode

Die aktivierte Umgebung gilt ausschließlich für den aktuellen Terminal-Kontext. Starten Sie beispielsweise zwei PowerShell-Fenster und aktivieren die Umgebung nur in einem, bleibt das andere Fenster von der Isolation unberührt. Viele moderne Python-IDEs wie Microsoft Visual Studio Code erkennen eine virtuelle Umgebung im Projektverzeichnis automatisch und aktivieren sie – vorausgesetzt, die Python-Erweiterung ist installiert.

Überprüfen, ob die richtige Umgebung aktiv ist

Um sicherzustellen, dass Sie sich in der gewünschten virtuellen Umgebung befinden, fragen Sie den Pfad des Python-Interpreters ab:

which pythoncodecode (Unix/macOS) oder where pythoncodecode (Windows). Der ausgegebene Pfad sollte auf das Verzeichnis Ihrer virtuellen Umgebung verweisen. Auch mit pip -Vcodecode können Sie kontrollieren, ob pipcodecode innerhalb der Umgebung arbeitet.

Python-Packages in virtuellen Umgebungen verwalten

In einer frisch erstellten Umgebung sind nur pipcodecode und setuptoolscodecode vorinstalliert. Alle weiteren Pakete müssen Sie selbst installieren. Das Vorgehen mit pip installcodecode ist identisch zur systemweiten Nutzung – entscheidend ist, dass Sie den pipcodecode der aktivierten Umgebung verwenden. Bei komplexen Projekten empfiehlt es sich, eine requirements.txtcodecode-Datei im Stammverzeichnis zu führen. Darin listen Sie alle Abhängigkeiten zeilenweise auf und können die Umgebung später mit einem einzigen Befehl reproduzieren:

pip install -r requirements.txtcodecode

Beachten Sie, dass Kopien von pipcodecode und setuptoolscodecode lokal für jede virtuelle Umgebung gelten. Sie müssen diese daher separat auf dem neuesten Stand halten. Um pipcodecode innerhalb einer Umgebung zu aktualisieren, verwenden Sie idealerweise:

python -m pip install -U pipcodecode

Dieser Befehl vermeidet Dateisperr-Probleme, die beim direkten Aufruf pip install -U pipcodecode auftreten können.

Virtuelle Umgebungen deaktivieren und entfernen

Wenn Sie die Arbeit in der isolierten Umgebung beenden möchten, haben Sie zwei Optionen: Schließen Sie einfach das Terminal-Fenster, oder bleiben Sie in der gleichen Sitzung und kehren zum Standard-Python-Interpreter zurück. Dazu geben Sie den Befehl deactivatecodecode ein. Unter Windows in der klassischen Eingabeaufforderung müssen Sie stattdessen deactivate.batcodecode im Scriptscodecode-Ordner ausführen. Unix- und PowerShell-Nutzer können deactivatecodecode von jedem Verzeichnis aus eingeben.

Virtuelle Umgebungen sind eigenständige Verzeichnisse. Wenn Sie eine Umgebung nicht mehr benötigen, löschen Sie einfach den gesamten Ordner. Stellen Sie vorher sicher, dass keine Python-Prozesse mehr darauf zugreifen.

Virtualenv: Virtuelle Umgebungen für Python 2

In Python 2 sind virtuelle Umgebungen kein nativer Bestandteil der Sprache. Hier kommt das Drittanbieter-Tool virtualenv ins Spiel, das auf PyPI verfügbar ist. Installieren Sie es mit pip install virtualenvcodecode. Ein neues Verzeichnis erstellen Sie mit virtualenv /pfad/zu/verzeichniscodecode. Aktivierung und Deaktivierung funktionieren exakt wie bei Python 3. Python 2 selbst und seine virtuellen Umgebungen sollten nur noch für die Wartung von Legacy-Projekten genutzt werden – die Migration auf Python 3 ist dringend anzuraten.

Virtuelle Umgebungen mit Jupyter Notebooks nutzen

Arbeiten Sie mit Jupyter Notebooks und haben Jupyter systemweit installiert, können Sie eine virtuelle Umgebung problemlos als Kernel einbinden. Gehen Sie dazu wie folgt vor:

  1. Erstellen und aktivieren Sie Ihre virtuelle Umgebung.
  2. Installieren Sie das Paket ipykernelcodecode mit pip install ipykernelcodecode.
  3. Registrieren Sie den Kernel mit: ipython kernel install --user --name=Projektnamecodecode. Ersetzen Sie Projektnamecodecode durch einen aussagekräftigen Namen.

Nach einem Neustart von Jupyter können Sie den neu erstellten Kernel auswählen. So bleiben alle Abhängigkeiten Ihres Notebook-Projekts sauber isoliert.

Virtual Environments upgraden

Ein Upgrade der systemweiten Python-Laufzeitumgebung überträgt sich nicht automatisch auf bestehende virtuelle Umgebungen – das ist beabsichtigt, da ein unerwarteter Versionssprung Abhängigkeiten brechen kann. Bei geringfügigen Punkt-Upgrades (z. B. von Python 3.9.5 auf 3.9.7) können Sie die Umgebung mit folgendem Befehl aktualisieren (ohne die Umgebung vorher zu aktivieren):

python -m venv /pfad/zu/venv --upgradecodecode

Bei einem Wechsel auf eine neue Hauptversion (etwa von Python 3.8 auf 3.9) müssen Sie dagegen eine komplett neue virtuelle Umgebung anlegen. Ein bestehendes Virtual Environment auf eine höhere Hauptversion zu heben, ist nicht empfehlenswert und führt oft zu inkonsistenten Zuständen.

Die Isolierung von Projektabhängigkeiten durch virtuelle Umgebungen ist heute der Standard in der Python-Entwicklung. Ob Sie mit venv, virtualenv oder einer Kombination aus beidem arbeiten – die Prinzipien bleiben gleich: Erstellen, Aktivieren, Packages verwalten, Deaktivieren. Mit diesem Handwerkszeug sind Sie bestens gerüstet, um Python-Projekte sauber, reproduzierbar und konfliktfrei zu entwickeln.

Diesen Artikel teilen