Eine virtuelle Python-Umgebung kann auf unterschiedliche Weise erzeugt werden. In diesem Artikel stelle ich die Vorgehensweise mit virtualenv
und venv
vor. Außerdem zeige ich, wie sie in Sublime Text und Visual Studio Code genutzt bzw. aktiviert werden.
Zunächst aber zur Frage, wofür eine virtuelle Umgebung gut ist. Wenn man an unterschiedlichen Projekten arbeitet, die unterschiedliche Python-Versionen benötigen oder für die Abhängigkeiten unterschiedlicher Versionen erforderlich sind, dann macht es Sinn eine Möglichkeit zu haben, diese Projekte voneinander zu separieren. Mit virtuellen Umgebungen wird genau dies realisiert.
Nachfolgend werden zwei Wege vorgestellt: virtualenv
und env
Das Modul virtualenv
Vor Python 3.4 sowie in Python 2.x musste dieses Modul verwendet werden, da das Erstellen einer virtuellen Umgebung nicht nativ implementiert war. Das Modul muss mit pip
(Windows) oder pip3
(Linux/macOS) installiert werden:
$ pip3 install virtualenv # Linux, macOS
$ pip install virtualenv # Windows
Als nächstes erstellt man ein Projektverzeichnis:
$ mkdir <Projektverzeichnis>
$ cd <Projektverzeichnis>
In diesem Verzeichnis wird dann die virtuelle Umgebung erzeugt:
$ virtualenv venv
Dadurch wird das Verzeichnis „venv“ erstellt, in dem sich alle erforderlichen Python-Dateien befinden. Dazu gehört auch eine Version des pip
-Moduls, so dass man zusätzlich weitere – nur für dieses Projekt genutzte – Module hinzufügen kann.
Das ich hier als Verzeichnisname „venv“ gewählt habe, ist eine Konvention. Man könnte auch irgendeine andere Bezeichnung wählen.
Über die Option -p <Pfad_zur_Python-Installation>
könnte außerdem angegeben werden, welche Python-Version genutzt werden soll. (Sofern unterschiedliche Versionen auf dem System zur Verfügung stehen.)
Es ist auch möglich, auf ein Unterverzeichnis zu verzichten:
$ virtualenv -p python3 . # Linux, macOS
$ virtualenv -p python . # Windows
Der Punkt meint das aktuelle Verzeichnis, so dass in diesem Beispiel eine virtuelle Umgebung unter Verwendung von Python 3 in diesem Verzeichnis erstellt wird.
Um die virtuelle Umgebung nutzen zu können, muss sie aktiviert werden. Sofern kein Unterordner erstellt wurde, erfolgt dies auf UNIX-artigen Systemen mit:
$ source bin/activate
Falls ein Unterordner mit der Bezeichnung „venv“ angelegt wurde, müsste dementsprechend
$ source venv/bin/activate
eingegeben werden.
Unter Windows erfolgt die Aktivierung wie folgt:
.\venv\Scripts\activate.bat
Sobald die Aktivierung durchgeführt wurde, kann man etwaige Module mit pip
(bzw. pip3
) installieren.
Damit ist die Einrichtung der virtuellen Umgebung abgeschlossen. Zum Deaktivieren existiert der Befehl deactivate
:
$ deactivate # Linux, macOS
$ .\venv\Scripts\deactivate.bat # Windows
Das Modul venv
Eine virtuelle Umgebung kann auch mit dem Module venv
erzeugt werden, das nur unter Python 3 verfügbar ist. Im Gegensatz zu virtualenv
handelt es sich nicht um ein separates Modul. Vielmehr wird es zusammen mit Python 3 ausgeliefert. Eine Installation mit pip3
ist also nicht erforderlich.
Sofern Ihr Python 3 nutzt, solltet Ihr venv
den Vorzug geben, da Ihr Euch dadurch einen Installationsschritt (und eine Abhängigkeit von einem separaten Paket) erspart.
Hinweis: Dies gilt auf jeden Fall für macOS. Unter Linux kann es hingegen sein, dass venv erst installiert werden muss. Auf einem auf Debian basierenden System ist beispielsweise folgender Installationsschritt erforderlich:
$ sudo apt install python<Version>-venv
Nutzt Ihr beispielsweise Ubuntu und Python in Version 3.8, dann müsst Ihr folgende Anweisung verwenden:
$ sudo apt install python3.8-venv
Für die Einrichtung einer virtuellen Umgebung mit venv
gilt folgende Syntax:
$ python3 -m venv /path/to/new/virtual/environment
Der Name des Ordners kann auch hier frei gewählt werden. An dieser Stelle möchte ich darauf hinweisen, dass man – unter UNIX-artigen System – auch einen versteckten Ordner anlegen könnte (z.B. „.venv“). Dies ist die empfohlene Vorgehensweise bei der Verwendung von Visual Studio Code. Denn bei Vorhandensein eines versteckten Ordners mit der Bezeichnung „.venv“ erkennt dieser Editor, dass es sich um eine virtuelle Umgebung handelt, die dann automatisch im Editor aktiviert wird.
$ python3 -m venv .venv # Linux, macOS
$ python -m venv .venv # Windows
Die virtuelle Umgebung wird anschließend wieder mit activate aktiviert:
$ source .venv/bin/activate # Linux, macOS
$ .\venv\Scripts\activate.bat # Windows
Und die Deaktivierung erfolgt auch hier wieder mit deactivate:
$ deactivate # Linux, macOS
$ .\venv\Scripts\deactivate.bat # Windows
Virtuelle Umgebungen in einem Code-Editor nutzen
In Sublime Text muss zunächst das Paket Virtualenv mit dem Paketmanager Package Control installiert werden.
Über
> Tools > Build System
kann dann „Python + Virtualenv“ aufgerufen werden. Die Aktivierung der virtuellen Umgebung erfolgt über die Kommandoübersicht (Command Palette), die mit der Tastenkombination
Shift + command + P (macOS)
Shift + Strg + P (Windows)
aufgerufen wird. Hier wählt Ihr dann
Virtualenv: Activate
aus.
Auf dem gleichen Weg erfolgt auch die Deaktivierung:
Virtualenv: Deactivate
Das Sublime-Paket Virtualenv funktioniert übrigens sowohl mit virtualenv
als auch mit venv
.
In Visual Studio Code sollte die Python-Erweiterung installiert sein. Ist das der Fall, dann erkennt VS Code in der Regel automatisch die virtuelle Umgebung. Falls dem nicht so ist, könnt Ihr sie wie folgt aktivieren: In der Kommandoübersicht, die mit der Tastenkombination Shift
+ command
+ P
(macOS) bzw. Shift
+ Strg
+ P
(Windows) aufgerufen werden kann, wählt Ihr
Python: Select Interpreter
aus. In der Übersicht zu den zur Verfügung stehenden Interpretern erscheint unter anderem der Ordner mit den Dateien zu Eurer virtuellen Umgebung (z.B. „.venv“). Diesen wählt Ihr aus. In der Statuszeile von Visual Studio Code wird dann dieser Interpreter angezeigt.
Wenn in Visual Studio Code ein neues integriertes Terminal gestartet wird, dann ist diese virtuelle Umgebung automatisch aktiviert. Ein solches Terminal kann übrigens über die Kommandoübersicht mit
Terminal: Neues Terminal erstellen
Terminal: Create New Terminal
geöffnet werden.
Virtuelle Umgebungen in PyCharm nutzen
Die Entwicklungsumgebung PyCharm hat Virtualenv bereits integriert, so dass es nicht separat installiert werden muss. Um eine virtuelle Umgebung nutzen zu können, startet man ein neues Projekt und wählt im sich öffnenden Konfigurationsfenster
New environment using Virtualenv
aus.
Wie Ihr der Abbildung entnehmen könnt, wird im Projektverzeichnis (hier: MyProject) standardmäßig ein Unterordner mit der Bezeichnung „venv“ angelegt. Außerdem könnt Ihr unter „Base interpreter“ die zu verwendende Python-Version auswählen.
Nach dem Start des neuen Projekts sieht man dann in der linken Seitenleiste (im Bereich „Project“) die Projektstruktur mit dem Ordner „venv“ und den dazugehörigen Unterordnern.
Zum Schluss noch der Hinweis, dass anstelle von Virtualenv entweder Pipenv oder Conda verwendet werden können, auf die ich hier aber nicht weiter eingehen werde.
Eine PDF-Version zu diesem Thema steht als Download zur Verfügung. Darüber hinaus habe ich bei Youtube ein Video hierzu veröffentlicht.
Weiterführende Links
- Dokumentation zur virtuellen Umgebung
- Using Python environments in VS Code
- Configure a virtual environment (PyCharm)
Zuletzt aktualisiert am 8. November 2023