LU08c - Python in der Linux-Shell

Pfade in WSL

Linux und Windows unterscheiden sich erheblich in der Art und Weise, wie sie mit Ordnerpfaden umgehen. Hier sind die wesentlichen Unterschiede:

Pfad-Trennzeichen

Gross- und Kleinschreibung

Pfadstruktur

Absoluter vs. relativer Pfad

In WSL sind die Laufwerke C:, D:, … unter /mnt/ eingebunden. Um auf den Windowsordner C:\BZZ\Python zuzugreifen, verwenden Sie in WSL /mnt/c/BZZ/Python.

Virtual Environment

In den meisten Fällen überlassen wir es unserer IDE, das Virtual Environment zu erstellen und zu aktivieren. Falls wir unser Programm jedoch auf einem Server ausführen wollen, haben wir nur die Shell zur Verfügung. In diesem Fall müssen wir uns selber um das venv kümmern.

Voraussetzung

Für das erste Projekt in WSL muss zunächst pip installiert werden: sudo apt install python3-pip.

Projekt erstellen

Ich gehe davon aus, dass ich einen Ordner mit einem Python-Projekt erstellt habe. Dieser kann manuell mit mkdir coolproject erstellt werden. Möchte ich ein Projekt von GitHub verwenden, kann ich den Ordner mit git clone erstellen.

git clone https://github.com/BZZ-Commons/python-template coolproject

Dieser Befehl klont das Projekt von GitHub in den Ordner coolproject.

Virtual Environment erstellen

Wir verwenden das Modul venv um unser Virtual Environment zu erstellen.

cd coolproject Wechsle in das Verzeichnis mit deinem Pythonprojekt
python3 -m venv ./venv Führe das Modul venv aus und lege fest, wo der Ordner für das Virtual Environment angelegt wird.

Mit ls -l kannst du prüfen, ob der Ordner venv angelegt wurde.

Je nach Quelle wird der Zielordner venv oder .venv genannt. Für die Funktionalität macht dies keinen Unterschied. In meinen Beispielen verwende ich den Ordnernamen venv (ohne Punkt am Anfang).

Virtual Environment aktivieren

Bevor wir das Pythonprojekt ausführen, sollten wir das Virtual Environment aktiveren. Dadurch stellen wir sicher, dass alle Änderungen an der Umgebung nur dieses Projekt betreffen und nicht systemweite Änderungen gemacht werden.

source venv/bin/activate

Anhand des Eingabeprompts erkennen wir, dass das Virtual Environment aktiviert ist:

(venv) user@system:

Um das Virtual Environment zu deaktivieren, gib den Befehl deactivate ein.

Abhängigkeiten installieren

In der Regel hat jedes Pythonprojekt eine Datei requirements.txt mit einer Liste der benötigten Pakete. Dies erleichtert die Installation der Pakete, wenn wir das Projekt von GitHub klonen.

Installiere die Pakete immer in ein aktiviertes Virtual Environment. Andernfalls würden die Pakete systemweit installiert, was zu Konflikten zwischen verschiedenen Projekten führen kann.

(venv) user@system:~/coolproject$ pip3 install -r requirements.txt

Skript ausführen

Nun können wir unsere Pythonskripte ausführen:

(venv) user@system:~/coolproject$ python3 main.py

Marcel Suter