uv

uv ist ein extrem schneller Python-Paket- und Projektmanager.

Sowohl die Installation von uv wie auch das Erstellen der Dateistrukturen für Bibliotheken oder Apps sind bereits in unserem Python Basics-Tutorial beschrieben.

Inline script metadata

uv ist jedoch auch hervorragend geeignet für einzelne Python-Skripte, die Inline script metadata enthalten, also z.B.:

app.py
 #!/usr/bin/env -S uv run
 # /// script
 # requires-python = ">=3.12"
 # dependencies = [
 #     "rich",
 # ]
 # ///
 import rich

Sofern die Berechtigungen für die Datei app.py ausführbar sind, also z.B. mit chmod 755, könnt ihr sie auf jedem Rechner mit installiertem uv ausführen:

./app.py

Es wird automatisch eine eigene isolierte Umgebung erstellt mit korrekter Python-Version und Abhängigkeiten.

Pakete erstellen

Mit uv build könnt ihr einfach Distribution Packages und Wheels erstellen.

Abhängigkeiten deklarieren, festschreiben und automatisch aktualisieren

In Aktualisieren der Python-Umgebung ist beschrieben, wie ihr mit uv lock --upgrade alle Abhängigkeiten und mit uv lock --upgrade-package PACKAGE==VERSION einzelne Abhängigkeiten kontrolliert aktualisieren könnt. Wie ihr regelmäßig automatisiert die Abhängigkeiten eures Projekts aktualisieren könnt, beschreiben wir in Dependency-Bot. Diese Maßnahmen erhöhen die Sicherheit eures Projekts erheblich.

Testen in verschiedenen Python-Umgebungen

Mit uv vereinfacht sich die parallele Installation verschiedener Python-Versionen, einschließlich PyPy und free-threaded Python 3.13. Mit tox-uv könnt ihr euer Projekt dann automatisiert in den verschiedenen Python-Umgebungen testen.