30 Punkte von darjeeling 2025-07-07 | 4 Kommentare | Auf WhatsApp teilen

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 wie pytest oder fastapi innerhalb einer virtuellen Umgebung aus, wobei die in pyproject.toml definierten und in der Datei uv.lock fixierten Abhängigkeiten verwendet werden.
  • uv add: Fügt pyproject.toml neue Abhängigkeiten hinzu und aktualisiert die Datei uv.lock automatisch.
  • uv run --with: Ermöglicht es, Entwicklungs-Helfermodule wie pdbpp vorü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 run erkennt beim Ausführen automatisch Änderungen an der Lock-Datei und synchronisiert die Umgebung.
2. Workflow-Standardisierung mit just
  • uv hat keine eingebaute Funktion zum Definieren benutzerdefinierter Befehle wie hatch oder pdm.
  • Im Video werden die Nachteile von Makefile hervorgehoben, etwa Plattformabhängigkeit und nicht standardisierte Syntax, und als Alternative wird der in Rust geschriebene Kommando-Runner just ausdrücklich empfohlen.
  • Mit einem justfile werden wiederkehrende Aufgaben als Rezepte standardisiert, zum Beispiel:
    • test: Tests ausführen (mit möglicher Argumentübergabe)
    • cov: Testabdeckung prüfen
    • serve: Entwicklungsserver starten
    • checkall: Linting, Type-Checks und weitere Prüfungen auf einmal ausführen
3. Zusammenspiel von just und uv
  • .env-Datei: just kann eine .env-Datei lesen und Umgebungsvariablen setzen. Damit lassen sich flexible Workflows aufbauen, etwa um uv run dynamisch um das Argument --with zu erweitern oder den Server-Port zu ändern.
  • uvx (uv tool run): Ein Befehl zum Ausführen von PyPI-Paketen unabhängig vom Projekt, ähnlich wie pipx. Innerhalb von just-Rezepten können so Tools wie httpie genutzt 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, ohne uv run zu verwenden.
  • uv sync: Synchronisiert den Zustand der Datei uv.lock mit 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 automatisch uv sync ausgefü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

 
gracefullight 2025-07-10

Ich habe eine Vorlage erstellt, um https://github.com/gracefullight/py-starter zu verwenden.

 
aabb2467 2025-07-08

Mit poethepoet kann man Aufgaben in der pyproject.toml definieren und verwenden, deshalb nutze ich es statt just.

 
gracefullight 2025-07-10

Danke.

 
dkmin 2025-07-09