uv: Der Python-Paketmanager, der pip, pip-tools und venv ersetzt (Leitfaden 2026)
Wenn Sie dieses Jahr an einem Python-Projekt gearbeitet haben, ist Ihnen wahrscheinlich schon einmal aufgefallen, dass „uv“ in einer README- oder CI-Datei auftaucht. Es handelt sich um einen von Rust geschriebenen Paketmanager und ein Virtualenv-Tool von Astral (dem gleichen Team hinter „ruff“) – und es ist 10-100x schneller als die klassische Kombination aus pip/pip-tools/venv.
In diesem Leitfaden wird behandelt, was uv tatsächlich ersetzt, die fünf Befehle, die 95 % Ihrer täglichen Aufgaben abdecken, und die beiden Fälle, in denen Sie bei den klassischen Tools bleiben sollten.
Was UV ersetzt
| Klassisches Werkzeug | UV-Äquivalent | Beschleunigung |
|---|---|---|
| python -m venv .venv | uv venv | ~5x |
| pip install pkg | uv pip install pkg | ~10-50x |
| pip install -r Anforderungen.txt | uv pip install -r require.txt | 20-100x im kalten Cache |
| pip-compile (pip-tools) | uv pip kompilieren | ~50x |
| python -m venv + source activate für jedes Projekt | uv run <cmd> | Überspringt die Aktivierung vollständig |
Der Geschwindigkeitsunterschied ist real. Die Installation eines moderaten Django-Projekts (Django + DRF + Sellerie + Redis + Boto3 + ~40 transitive Deps) in einem kalten Cache dauert ~45 Sekunden mit Pip und ~2 Sekunden mit UV. Bei einem warmen Cache erfolgt UV im Wesentlichen sofort, da ein globaler, fest verbundener Cache verwendet wird, anstatt Dateien in jeden Venv zu kopieren.
Die fünf Befehle, die Sie tatsächlich verwenden werden
1. UV selbst installieren
BASH# macOS + Linux — one line, no sudo, no Python needed curl -LsSf https://astral.sh/uv/install.sh | sh # Windows PowerShell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Or via brew / apt / your package manager (updated frequently) brew install uv
uv ist eine einzelne, eigenständige Binärdatei – kein Python-Bootstrap, keine eigenen Abhängigkeiten.
2. Erstellen Sie eine virtuelle Umgebung
BASHcd my-project uv venv # creates .venv/ using the current Python uv venv --python 3.13 # or pin a version — uv will download it if missing
Im Gegensatz zu „python -m venv“ kann uv die von Ihnen angeforderte Python-Version abrufen. Kein dreistufiger Tanz mehr: „pyenv installieren, dann venv, dann aktivieren“.
3. Pakete installieren
BASHuv pip install fastapi httpx # into the current venv uv pip install -r requirements.txt # bulk install uv pip install -e . # editable install of current project
Die Syntax ist absichtlich identisch mit „pip“ – tauschen Sie „pip“ gegen „uv pip“ und alles funktioniert. Migrationskosten: fünf Tastenanschläge.
4. Anforderungen einfrieren/kompilieren
BASH# From an installed venv → requirements.txt (like `pip freeze`) uv pip freeze > requirements.txt # From a loose requirements.in → fully pinned requirements.txt (like pip-compile) uv pip compile requirements.in -o requirements.txt
Der Kompilierungsschritt ist deterministisch – gleiche Eingabe, gleiche Ausgabe, Byte für Byte. Perfekt für reproduzierbares CI.
5. Führen Sie einen Befehl aus, ohne den venv zu aktivieren
BASHuv run pytest # runs pytest from the current venv uv run python manage.py migrate # any command, any script uv run --with ipython python # temporarily add ipython for this session
Das ist die Killerfunktion. Kein „source .venv/bin/activate“ mehr vor jedem Befehl. Großartig in CI, großartig in Makefiles, großartig in Shell-Skripten.
Ein bestehendes Projekt migrieren (2 Minuten)
Angenommen, Sie haben eine „requirements.txt“:
BASH# 1. Nuke the old venv rm -rf .venv # 2. Create the uv venv uv venv # 3. Install uv pip install -r requirements.txt # 4. Verify uv run python -c "import fastapi; print(fastapi.__version__)"
Vier Befehle, fertig. Ihre „requirements.txt“ muss nicht geändert werden. Ihre „pyproject.toml“ muss nicht geändert werden. Ihr CI muss kaum geändert werden – tauschen Sie den Installationsschritt aus und fertig.
Der native Pfad pyproject.toml (uv-first-Projekte)
Für Projekte, die von Grund auf neu beginnen, verwenden Sie den nativen Workflow von uv – ganz ohne „requirements.txt“:
BASHuv init my-project # generates pyproject.toml + .python-version + .gitignore cd my-project uv add fastapi # adds fastapi to pyproject.toml [dependencies] AND installs uv add --dev pytest # adds to dev-dependencies uv sync # installs exactly what pyproject.toml says (uses uv.lock) uv lock --upgrade # bumps every dependency to its latest compatible version
Dies ist die gleiche Form wie „cargo“ für Rust oder „npm“ für Node – eine Konfigurationsdatei, eine Sperrdatei, deterministische Installationen. Wenn Sie im Jahr 2026 neu anfangen, ist dies der richtige Weg.
Wann sollte pip / venv noch verwendet werden?
Zwei Fälle:
1. Ältere CI-Systeme, die uv nicht installieren können. Wenn Sie mit einem Jenkins-Agenten aus dem Jahr 2019 ohne Shell-Zugriff stecken bleiben, kann die Reibung bei der Installation von uv den Geschwindigkeitsgewinn überwiegen. Jedes moderne CI-System (GitHub Actions, GitLab CI, CircleCI, BuildKite) verfügt über einen einzeiligen UV-Installer.
2. Airgapped-Umgebungen mit einem gesperrten „pip“-Spiegel. uv verwendet standardmäßig PyPI, unterstützt aber „--index-url“ – das funktioniert normalerweise, aber einige Unternehmensspiegel weisen subtile Verhaltensweisen auf (Authentifizierungsheader, JSON-API vs. einfache API), die uv anders handhabt. Testen Sie, bevor Sie sich verpflichten.
Das ist es. Für alle anderen Fälle im Jahr 2026 – Solo-Entwicklung, Teamprojekte, Open Source, CI, Docker – ist uv schneller, zuverlässiger und erfordert weniger mentalen Aufwand als der klassische Stack.
Der 30-sekündige CI-Wechsel
Vorher (GitHub-Aktionen):
YAML- uses: actions/setup-python@v5 with: python-version: '3.13' - run: pip install -r requirements.txt - run: pytest
Nach:
YAML- uses: astral-sh/setup-uv@v3 - run: uv sync - run: uv run pytest
Die CI-Läufe sinken beim Installationsschritt von ca. 2 Minuten auf ca. 15 Sekunden. Wenn Ihre Testmatrix 5x pro PR ausgeführt wird, ist das eine echte kumulative Ersparnis.
uv ist das seltene Tool, das sowohl schneller als auch einfacher ist als das, was es ersetzt. Wenn Sie im Jahr 2026 Ihren Lebensunterhalt mit dem Schreiben von Python verdienen, verbringen Sie 10 Minuten damit, ein Projekt umzustellen. Die Gewohnheit wird sich auf jedes neue Projekt übertragen, das Sie anfassen.
Nächster Schritt: Der Python DevOps Track behandelt UV, Ruff, Docker und den modernen Python-Bereitstellungsstapel – 104 interaktive Lektionen.