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 von uv.lock 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.