2.2 KiB
Executable File
uv ist ein neues, sehr schnelles All-in-one-Tool für das Python-Ökosystem, entwickelt von Astral (den Machern von ruff).
Es ist im Kern ein extrem schneller Paket- und Environment-Manager, der mehrere bekannte Tools ersetzt bzw. bündelt:
pip/pip-tools(Installation & Lockfiles)virtualenv/venv(virtuelle Umgebungen)pyenv(verschiedene Python-Versionen verwalten)- Teile von
poetry/pipx(Projekt- & Tool-Management)
pip install uv installiert dabei nur einen Bootstrapper, der das eigentliche uv-Binary nachlädt.
Wofür ist uv gut?
1. Pakete extrem schnell installieren
uv ist in Rust geschrieben und deutlich schneller als pip oder pip-tools beim Auflösen und Installieren von Abhängigkeiten.
Beispiel (Drop-in für pip):
uv pip install requests
Auch mit requirements.txt:
uv pip install -r requirements.txt
2. Virtuelle Umgebungen verwalten
# Neue venv erstellen
uv venv .venv
# venv aktivieren (z. B. in bash)
source .venv/bin/activate
3. Python-Versionen verwalten
Ähnlich wie pyenv:
# Bestimmte Python-Version installieren
uv python install 3.12
# Projekt mit bestimmter Version starten
uv run --python 3.12 main.py
4. Projekte initialisieren & reproduzierbare Builds
uv unterstützt pyproject.toml und Lockfiles (uv.lock) für reproduzierbare Umgebungen:
# Neues Projekt anlegen
uv init my-project
cd my-project
uv sync # Installiert Abhängigkeiten gemäß pyproject + uv.lock
5. Skripte/Tools direkt ausführen
Ähnlich wie pipx:
uv run black .
uv run pytest
uv kümmert sich im Hintergrund um die passende Umgebung und Abhängigkeiten.
Kurzfassung
uv ist sinnvoll, wenn du:
- Python-Pakete deutlich schneller installieren willst,
- alles rund um Python-Umgebungen (Packages, venvs, Python-Versionen, Tools) mit einem konsistenten Tool verwalten möchtest,
- reproduzierbare Builds mit
pyproject.tomlund Lockfile brauchst, - eine moderne Alternative zu
pip,virtualenv,pyenv,pip-tools, teilweisepoetry/pipxsuchst.
Wenn du aktuell pip, virtualenv & Co nutzt, kannst du mittelfristig sehr viel davon durch uv ersetzen.