Eine virtuelle Umgebung für Python erstellen

Aktualisiert am 24. September 2021

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  // > Linuy, macOS
$ pip install virtualenv    // > Windows 10, windows 11

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 10, Windows 11

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 10, Windows 11

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

Den Namen 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 10, Windows 11

Die virtuelle Umgebung wird anschließend wieder mit activate aktiviert:

$ source .venv/bin/activate    // > Linux, macOS
$ .\.venv\Scripts\activate.bat // > Windows 10, Windows 11

Und die Deaktivierung erfolgt auch hier wieder mit deactivate:

$ deactivate                                     // > Linux, macOS
$ .\.venv\Scripts\deactivate.bat   // > Windows 10, Windows 11

Virtuelle Umgebungen in einem Code-Editor nutzen

In Sublime Text 3 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 Paket Virtualenv funktioniert übrigens sowohl mit virtualenv als auch mit venv.

In Visual Studio Code sollte die Python-Erweiterung installiert sein. In der Kommandoübersicht, die auch hier mit der Tastenkombination Shift + command + P (macOS) bzw. Shift + Strg + P (Windows) aufgerufen werden kann, wählt Ihr dann

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: Create New Integrated 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.

Create a new project in PyCharm

Wie Ihr der Abbildung entnehmen könnt, wird im Projektverzeichnis (hier: MyProject) 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.

Project structure in PyCharm

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.

Weiterführende Links