Dieser Artikel zeigt, wie man Django in einer virtuellen Umgebung unter macOS einrichtet. Auch wenn sich diese Ausführungen primär an Mac-Benutzer richten, funktionieren sie unter Windows und Linux in ähnlicher Weise.
Zunächst sollte sichergestellt sein, dass Python 3 installiert ist. Nach der Eingabe von
$ python3 -V
sollte man eine positive Rückmeldung erhalten, z.B.
Python 3.9.0
Falls Python bisher nicht auf Eurem Mac installiert ist, ruft die Internetseite des Python-Projekts auf und ladet Euch die aktuellste Version herunter.
Das Modul virtualenv
Zunächst zeige ich, wie eine virtuelle Umgebung mithilfe von virtualenv erstellt werden kann. Hierbei handelt es sich um ein separates Modul, das mit pip
bzw. pip3
installiert werden muss:
$ pip3 install virtualenv
Nun sollte ein Ordner erstellt werden, der zum Heimatort für Euer Django-Projekt wird. In der Shell ist dies schnell mit
$ mkdir <Ordnername>
erledigt.
Als nächstes kann die virtuelle Umgebung erzeugt werden. Die Syntax zum Erstellen einer neuen virtuellen Umgebung folgt folgendem Muster:
$ virtualenv -p python3 <Pfad>
Angenommen, die virtuelle Umgebung soll in einem neu zu erstellenden Ordner mit der Bezeichnung „Django-Projekt“ erzeugt werden, dann wären folgende Schritte in der Shell erforderlich.
$ mkdir Django-Projekt
$ cd Django-Projekt
$ virtualenv -p python3 .
Ein Punkt meint dabei das aktuelle Verzeichnis.
Als Rückmeldung erscheint eine Information ähnlich der folgenden:
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/3.9/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.9'
New python executable in /Users/bodo/Development/Python/Django-Projekt/bin/python3
Also creating executable in /Users/bodo/Development/Python/Django-Projekt/bin/python
Installing setuptools, pip, wheel...done.
Jetzt muss die virtuelle Umgebung aktiviert werden:
$ source bin/activate
(Django-Projekt) $
Nach der Aktivierung wird der Name des Projektverzeichnisses in runden Klammern angezeigt.
Im nächsten Schritt kann Django mithilfe von pip3
zur aktiven virtuellen Umgebung hinzugefügt werden:
(Django-Projekt) $ pip3 install django
Und damit ist die Einrichtung abgeschlossen. Zum Verlassen der virtuellen Umgebung steht übrigens der Befehl deactivate
zur Verfügung:
(Django-Projekt) $ deactivate
Bleibt noch die Frage: Wofür dieser Aufwand? Dies ist schnell beantwortet. Die innerhalb der virtuellen Umgebung installierten Module stehen nur in dieser Umgebung zur Verfügung. Sie sind unabhängig von den ansonsten (global oder in anderen virtuellen Umgebungen) installierten Modulen. Man kann also nicht Gefahr laufen, dass bei einem (globalen) Update von Modulen etwaige Abhängigkeiten brechen (und damit der Code nicht mehr funktionieren mag). Und dies gilt nicht nur für Module, denn in unterschiedlichen virtuellen Umgebungen können auch unterschiedliche Python-Versionen genutzt werden.
Das Modul venv
Neben virtualenv gibt es noch venv. 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. In der Dokumentation zu diesem Modul wird venv folgendermaßen beschrieben:
The venv module provides support for creating lightweight “virtual environments” with their own site directories, optionally isolated from system site directories.
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.
Für die Einrichtung einer virtuellen Umgebung mit venv gilt folgende Syntax:
$ python3 -m venv /path/to/new/virtual/environment
Bezogen auf obiges Beispiel, könnte ich also auch folgendermaßen vorgehen:
Zunächst erstelle ich einen Projektordner und wechsle in diesen Ordner:
$ mkdir Django-Projekt
$ cd Django-Projekt
Hier erzeuge ich die virtuelle Umgebung, wobei die hierfür erforderlichen Verzeichnisse und Dateien im Ordner „.venv“ angelegt werden sollen.
$ python3 -m venv .venv
Die virtuelle Umgebung wird anschließend mit
$ source .venv/bin/activate
erzeugt. Die Deaktivierung erfolgt mit:
$ deactivate
Auch hier wird Django mit pip3
installiert:
(Django-Projekt) $ pip3 install django
Weiterführende Links
Zuletzt aktualisiert am 23. Juni 2022