{"id":49538,"date":"2026-08-21T10:59:13","date_gmt":"2026-08-21T08:59:13","guid":{"rendered":"https:\/\/overcentral.com\/de\/?p=49538"},"modified":"2026-08-21T10:59:13","modified_gmt":"2026-08-21T08:59:13","slug":"venv-virtualenv-virtuelle-python-umgebungen-49538","status":"publish","type":"post","link":"https:\/\/overcentral.com\/de\/venv-virtualenv-virtuelle-python-umgebungen-49538\/","title":{"rendered":"venv und virtualenv: Virtuelle Python-Umgebungen richtig nutzen"},"content":{"rendered":"<p>Virtuelle Python-Umgebungen sind ein unverzichtbares Werkzeug f\u00fcr jeden Entwickler, der sauber und reproduzierbar arbeiten m\u00f6chte. Sie isolieren Projektabh\u00e4ngigkeiten, verhindern Konflikte zwischen verschiedenen Versionen derselben Bibliotheken und machen die Zusammenarbeit im Team deutlich einfacher. Mit den nativen Werkzeugen <strong><a href=\"https:\/\/docs.python.org\/3\/library\/venv.html\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">venv<\/a><\/strong> (f\u00fcr Python 3) und dem Drittanbieter-Tool <strong><a href=\"https:\/\/virtualenv.pypa.io\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">virtualenv<\/a><\/strong> (auch f\u00fcr Python 2) lassen sich solche isolierten Umgebungen schnell erstellen und verwalten. Dieser Leitfaden zeigt Ihnen Schritt f\u00fcr Schritt, wie Sie virtuelle Python-Umgebungen richtig nutzen, konfigurieren und warten \u2013 vom Aktivieren \u00fcber das Package-Management bis hin zum Upgraden.<\/p>\n<h2>Was ist eine virtuelle Python-Umgebung und warum brauchen Sie sie?<\/h2>\n<p>Eine virtuelle Umgebung (Virtual Environment, kurz <em>venv<\/em>) ist ein in sich geschlossenes Verzeichnis, das eine eigene Installation des Python-Interpreters sowie eigene Kopien von <code>pip<\/code>codecode und <code>setuptools<\/code>codecode enth\u00e4lt. 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\u00e4ngigkeiten arbeiten: Projekt A ben\u00f6tigt Django 3.2, Projekt B setzt auf Django 4.1 \u2013 mit virtuellen Umgebungen wird das zum Kinderspiel.<\/p>\n<h2>Virtuelle Umgebungen mit venv erstellen und aktivieren<\/h2>\n<p>Ab Python 3.3 ist das Modul <code>venv<\/code>codecode fester Bestandteil der Standardbibliothek. Um eine neue virtuelle Umgebung zu erstellen, \u00f6ffnen Sie ein Terminal und f\u00fchren Sie folgenden Befehl aus:<\/p>\n<p><code>python -m venv \/pfad\/zu\/ihrem\/venv<\/code>codecode<\/p>\n<p>Ersetzen Sie <code>\/pfad\/zu\/ihrem\/venv<\/code>codecode durch das gew\u00fcnschte Verzeichnis, zum Beispiel <code>.\/my_project_env<\/code>codecode. Das Modul erzeugt dann die gesamte Verzeichnisstruktur mit den erforderlichen Dateien.<\/p>\n<p>Nach der Erstellung m\u00fcssen Sie die Umgebung aktivieren. Die genaue Syntax h\u00e4ngt von Ihrem Betriebssystem und Ihrer Shell ab:<\/p>\n<ul>\n<li><strong>Unix oder macOS mit Bash-Shell:<\/strong> <code>source \/pfad\/zu\/venv\/bin\/activate<\/code>codecode<\/li>\n<li><strong>Unix oder macOS mit csh-Shell:<\/strong> <code>source \/pfad\/zu\/venv\/bin\/activate.csh<\/code>codecode<\/li>\n<li><strong>Unix oder macOS mit fish-Shell:<\/strong> <code>source \/pfad\/zu\/venv\/bin\/activate.fish<\/code>codecode<\/li>\n<li><strong>Windows mit Eingabeaufforderung:<\/strong> <code>pfad\\zu\\venv\\Scripts\\activate.bat<\/code>codecode<\/li>\n<li><strong>Windows mit PowerShell:<\/strong> <code>pfad\\zu\\venv\\Scripts\\Activate.ps1<\/code>codecode<\/li>\n<\/ul>\n<p>Die aktivierte Umgebung gilt ausschlie\u00dflich f\u00fcr 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\u00fchrt. Viele moderne Python-IDEs wie Microsoft Visual Studio Code erkennen eine virtuelle Umgebung im Projektverzeichnis automatisch und aktivieren sie \u2013 vorausgesetzt, die Python-Erweiterung ist installiert.<\/p>\n<h3>\u00dcberpr\u00fcfen, ob die richtige Umgebung aktiv ist<\/h3>\n<p>Um sicherzustellen, dass Sie sich in der gew\u00fcnschten virtuellen Umgebung befinden, fragen Sie den Pfad des Python-Interpreters ab:<\/p>\n<p><code>which python<\/code>codecode (Unix\/macOS) oder <code>where python<\/code>codecode (Windows). Der ausgegebene Pfad sollte auf das Verzeichnis Ihrer virtuellen Umgebung verweisen. Auch mit <code>pip -V<\/code>codecode k\u00f6nnen Sie kontrollieren, ob <code>pip<\/code>codecode innerhalb der Umgebung arbeitet.<\/p>\n<h2>Python-Packages in virtuellen Umgebungen verwalten<\/h2>\n<p>In einer frisch erstellten Umgebung sind nur <code>pip<\/code>codecode und <code>setuptools<\/code>codecode vorinstalliert. Alle weiteren Pakete m\u00fcssen Sie selbst installieren. Das Vorgehen mit <code>pip install<\/code>codecode ist identisch zur systemweiten Nutzung \u2013 entscheidend ist, dass Sie den <code>pip<\/code>codecode der aktivierten Umgebung verwenden. Bei komplexen Projekten empfiehlt es sich, eine <code>requirements.txt<\/code>codecode-Datei im Stammverzeichnis zu f\u00fchren. Darin listen Sie alle Abh\u00e4ngigkeiten zeilenweise auf und k\u00f6nnen die Umgebung sp\u00e4ter mit einem einzigen Befehl reproduzieren:<\/p>\n<p><code>pip install -r requirements.txt<\/code>codecode<\/p>\n<p>Beachten Sie, dass Kopien von <code>pip<\/code>codecode und <code>setuptools<\/code>codecode lokal f\u00fcr jede virtuelle Umgebung gelten. Sie m\u00fcssen diese daher separat auf dem neuesten Stand halten. Um <code>pip<\/code>codecode innerhalb einer Umgebung zu aktualisieren, verwenden Sie idealerweise:<\/p>\n<p><code>python -m pip install -U pip<\/code>codecode<\/p>\n<p>Dieser Befehl vermeidet Dateisperr-Probleme, die beim direkten Aufruf <code>pip install -U pip<\/code>codecode auftreten k\u00f6nnen.<\/p>\n<h2>Virtuelle Umgebungen deaktivieren und entfernen<\/h2>\n<p>Wenn Sie die Arbeit in der isolierten Umgebung beenden m\u00f6chten, haben Sie zwei Optionen: Schlie\u00dfen Sie einfach das Terminal-Fenster, oder bleiben Sie in der gleichen Sitzung und kehren zum Standard-Python-Interpreter zur\u00fcck. Dazu geben Sie den Befehl <code>deactivate<\/code>codecode ein. Unter Windows in der klassischen Eingabeaufforderung m\u00fcssen Sie stattdessen <code>deactivate.bat<\/code>codecode im <code>Scripts<\/code>codecode-Ordner ausf\u00fchren. Unix- und PowerShell-Nutzer k\u00f6nnen <code>deactivate<\/code>codecode von jedem Verzeichnis aus eingeben.<\/p>\n<p>Virtuelle Umgebungen sind eigenst\u00e4ndige Verzeichnisse. Wenn Sie eine Umgebung nicht mehr ben\u00f6tigen, l\u00f6schen Sie einfach den gesamten Ordner. Stellen Sie vorher sicher, dass keine Python-Prozesse mehr darauf zugreifen.<\/p>\n<h2>Virtualenv: Virtuelle Umgebungen f\u00fcr Python 2<\/h2>\n<p>In Python 2 sind virtuelle Umgebungen kein nativer Bestandteil der Sprache. Hier kommt das Drittanbieter-Tool <strong>virtualenv<\/strong> ins Spiel, das auf PyPI verf\u00fcgbar ist. Installieren Sie es mit <code>pip install virtualenv<\/code>codecode. Ein neues Verzeichnis erstellen Sie mit <code>virtualenv \/pfad\/zu\/verzeichnis<\/code>codecode. Aktivierung und Deaktivierung funktionieren exakt wie bei Python 3. Python 2 selbst und seine virtuellen Umgebungen sollten nur noch f\u00fcr die Wartung von Legacy-Projekten genutzt werden \u2013 die Migration auf Python 3 ist dringend anzuraten.<\/p>\n<h2>Virtuelle Umgebungen mit Jupyter Notebooks nutzen<\/h2>\n<p>Arbeiten Sie mit Jupyter Notebooks und haben Jupyter systemweit installiert, k\u00f6nnen Sie eine virtuelle Umgebung problemlos als Kernel einbinden. Gehen Sie dazu wie folgt vor:<\/p>\n<ol>\n<li>Erstellen und aktivieren Sie Ihre virtuelle Umgebung.<\/li>\n<li>Installieren Sie das Paket <code>ipykernel<\/code>codecode mit <code>pip install ipykernel<\/code>codecode.<\/li>\n<li>Registrieren Sie den Kernel mit: <code>ipython kernel install --user --name=Projektname<\/code>codecode. Ersetzen Sie <code>Projektname<\/code>codecode durch einen aussagekr\u00e4ftigen Namen.<\/li>\n<\/ol>\n<p>Nach einem Neustart von Jupyter k\u00f6nnen Sie den neu erstellten Kernel ausw\u00e4hlen. So bleiben alle Abh\u00e4ngigkeiten Ihres Notebook-Projekts sauber isoliert.<\/p>\n<h2>Virtual Environments upgraden<\/h2>\n<p>Ein Upgrade der systemweiten Python-Laufzeitumgebung \u00fcbertr\u00e4gt sich nicht automatisch auf bestehende virtuelle Umgebungen \u2013 das ist beabsichtigt, da ein unerwarteter Versionssprung Abh\u00e4ngigkeiten brechen kann. Bei geringf\u00fcgigen Punkt-Upgrades (z.\u202fB. von Python 3.9.5 auf 3.9.7) k\u00f6nnen Sie die Umgebung mit folgendem Befehl aktualisieren (ohne die Umgebung vorher zu aktivieren):<\/p>\n<p><code>python -m venv \/pfad\/zu\/venv --upgrade<\/code>codecode<\/p>\n<p>Bei einem Wechsel auf eine neue Hauptversion (etwa von Python 3.8 auf 3.9) m\u00fcssen Sie dagegen eine komplett neue virtuelle Umgebung anlegen. Ein bestehendes Virtual Environment auf eine h\u00f6here Hauptversion zu heben, ist nicht empfehlenswert und f\u00fchrt oft zu inkonsistenten Zust\u00e4nden.<\/p>\n<p>Die Isolierung von Projektabh\u00e4ngigkeiten durch virtuelle Umgebungen ist heute der Standard in der Python-Entwicklung. Ob Sie mit venv, virtualenv oder einer Kombination aus beidem arbeiten \u2013 die Prinzipien bleiben gleich: Erstellen, Aktivieren, Packages verwalten, Deaktivieren. Mit diesem Handwerkszeug sind Sie bestens ger\u00fcstet, um Python-Projekte sauber, reproduzierbar und konfliktfrei zu entwickeln.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virtuelle Python-Umgebungen sind ein unverzichtbares Werkzeug f\u00fcr jeden Entwickler, der sauber und reproduzierbar arbeiten m\u00f6chte. Sie isolieren Projektabh\u00e4ngigkeiten, verhindern Konflikte zwischen verschiedenen Versionen derselben Bibliotheken und machen die Zusammenarbeit im Team deutlich einfacher. Mit den nativen Werkzeugen venv (f\u00fcr Python 3) und dem Drittanbieter-Tool virtualenv (auch f\u00fcr Python 2) lassen sich solche isolierten Umgebungen schnell [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":49541,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/pub-4d4fc17555de4152be07eaf2a416a31e.r2.dev\/de\/ocie_1787302776193.jpg","fifu_image_alt":"venv und virtualenv: Virtuelle Python-Umgebungen richtig nutzen","footnotes":""},"categories":[6672],"tags":[],"class_list":["post-49538","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technologie"],"fifu_image_url":"https:\/\/pub-4d4fc17555de4152be07eaf2a416a31e.r2.dev\/de\/ocie_1787302776193.jpg","fifu_image_alt":"venv und virtualenv: Virtuelle Python-Umgebungen richtig nutzen","_links":{"self":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/comments?post=49538"}],"version-history":[{"count":2,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49538\/revisions"}],"predecessor-version":[{"id":49540,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/posts\/49538\/revisions\/49540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/media\/49541"}],"wp:attachment":[{"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/media?parent=49538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/categories?post=49538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/overcentral.com\/de\/wp-json\/wp\/v2\/tags?post=49538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}