Den Python-Entwicklungs-Workflow mit uv revolutionieren
(youtube.com)Zusammenfassung des Videos "uv: Making Python Local Workflows FAST and BORING in 2025"
Dieses Video ist der zweite Teil darüber, wie man mit dem Python-Packaging-Tool uv lokale Entwicklungs-Workflows schnell und effizient gestaltet. Die wichtigsten Punkte sind folgende.
1. Zentrale uv-Befehle nutzen
uv run: Führt Befehle wiepytestoderfastapiinnerhalb einer virtuellen Umgebung aus, wobei die inpyproject.tomldefinierten und in der Dateiuv.lockfixierten Abhängigkeiten verwendet werden.uv add: Fügtpyproject.tomlneue Abhängigkeiten hinzu und aktualisiert die Dateiuv.lockautomatisch.uv run --with: Ermöglicht es, Entwicklungs-Helfermodule wiepdbppvorübergehend einzuschleusen, ohne sie zu den Kernabhängigkeiten des Projekts hinzuzufügen.uv lock --upgrade: Aktualisiert die Dependency-Lock-Datei mit sehr hoher Geschwindigkeit.uv runerkennt beim Ausführen automatisch Änderungen an der Lock-Datei und synchronisiert die Umgebung.
2. Workflow-Standardisierung mit just
uvhat keine eingebaute Funktion zum Definieren benutzerdefinierter Befehle wiehatchoderpdm.- Im Video werden die Nachteile von
Makefilehervorgehoben, etwa Plattformabhängigkeit und nicht standardisierte Syntax, und als Alternative wird der in Rust geschriebene Kommando-Runnerjustausdrücklich empfohlen. - Mit einem
justfilewerden wiederkehrende Aufgaben als Rezepte standardisiert, zum Beispiel:test: Tests ausführen (mit möglicher Argumentübergabe)cov: Testabdeckung prüfenserve: Entwicklungsserver startencheckall: Linting, Type-Checks und weitere Prüfungen auf einmal ausführen
3. Zusammenspiel von just und uv
.env-Datei:justkann eine.env-Datei lesen und Umgebungsvariablen setzen. Damit lassen sich flexible Workflows aufbauen, etwa umuv rundynamisch um das Argument--withzu erweitern oder den Server-Port zu ändern.uvx(uv tool run): Ein Befehl zum Ausführen von PyPI-Paketen unabhängig vom Projekt, ähnlich wiepipx. Innerhalb vonjust-Rezepten können so Tools wiehttpiegenutzt werden, ohne sie zu den Projektabhängigkeiten hinzuzufügen.
4. Virtuelle Umgebungen direkt verwalten (optionaler Workflow)
- Dies ist ein Ansatz für Entwickler, die virtuelle Umgebungen (
.venv) klassisch aktivieren und nutzen möchten, ohneuv runzu verwenden. uv sync: Synchronisiert den Zustand der Dateiuv.lockmit dem Ordner.venv. (Installiert Abhängigkeiten und entfernt unnötige Pakete.)direnv: Ein Shell-Tool, das beim Betreten eines bestimmten Verzeichnisses automatisch ein.envrc-Skript ausführt. Damit kann beim Wechsel in ein Verzeichnis automatischuv syncausgeführt und die virtuelle Umgebung aktiviert werden.
Fazit
Durch die Kombination aus der Geschwindigkeit von uv und Tools wie just und direnv lassen sich Abhängigkeitsverwaltung und Befehlsausführung automatisieren und standardisieren, sodass Entwickler sich stärker auf die Kernlogik konzentrieren können. So entsteht eine „schnelle und langweilige (boring)“, also sehr stabile und vorhersehbare Entwicklungsumgebung.
4 Kommentare
Ich habe eine Vorlage erstellt, um
https://github.com/gracefullight/py-starterzu verwenden.Mit poethepoet kann man Aufgaben in der
pyproject.tomldefinieren und verwenden, deshalb nutze ich es stattjust.Danke.
Vielen Dank. https://poethepoet.natn.io/