`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): ```bash uv pip install requests ``` Auch mit `requirements.txt`: ```bash uv pip install -r requirements.txt ``` --- ### 2. Virtuelle Umgebungen verwalten ```bash # Neue venv erstellen uv venv .venv # venv aktivieren (z. B. in bash) source .venv/bin/activate ``` --- ### 3. Python-Versionen verwalten Ähnlich wie `pyenv`: ```bash # 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: ```bash # 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`: ```bash 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.toml` und Lockfile brauchst, - eine moderne Alternative zu `pip`, `virtualenv`, `pyenv`, `pip-tools`, teilweise `poetry`/`pipx` suchst. Wenn du aktuell `pip`, `virtualenv` & Co nutzt, kannst du mittelfristig sehr viel davon durch `uv` ersetzen.