Python: Virtual Environment

13. Juli 2023

Pakete, die mit pip installiert werden, werden standardmäßig global installiert. Dies hat den Nachteil, dass immer nur eine Version des Pakets verfügbar ist, was bei unterschiedlichen Anwendungen zu Problemen führen kann.

Daher wird empfohlen, für Anwendungen sogenannte „Virtual Environments“ zu erstellen. Dies wird wie folgt gemacht:

python -m venv env

Dadurch wird im aktuellen Verzeichnis ein Unterordner „env“ erstellt. Um die Virtual Environment in der aktuellen Shell zu aktivieren, muss der folgende Befehl ausgeführt werden:

source env/bin/activate

Pakete, die jetzt installiert werden, werden in der virtuellen Umgebung installiert. Um eine Übersicht der aktuell installierten Pakete zu erhalten, kann der folgende Befehl aufgerufen werden:

pip list

Benötigte Pakete in einer Anwendung werden normalerweise in der requirements.txt gespeichert. Diese Datei kann mit Hilfe von pip freeze erstellt werden:

python -m pip freeze > requirements.txt

Das Problem dabei ist allerdings, dass hier auch Pakete eingetragen werden, die nicht direkt installiert wurden, sondern durch Abhängigkeit von anderen Paketen. Daher empfiehlt es sich, die Datei zu bereinigen.

Zum Installieren der Pakete aus der requirements.txt wird der folgende Befehl aufgerufen:

python -m pip install -r requirements.txt

Das „env“-Verzeichnis wird nicht in Git gespeichert. Bei einem frischen clone muss dieses wieder neu erstellt werden.