Python-Entwickler müssen sich endlich nicht mehr zwischen pip, poetry und pipenv entscheiden. uv, entwickelt vom Astral-Team hinter Ruff, verändert die Landschaft der Python-Paketverwaltung mit erstaunlicher Geschwindigkeit.

Was ist uv?

uv ist ein Python-Paket- und Projektverwaltungstool, geschrieben in Rust. Es hat nur ein Ziel: maximale Geschwindigkeit.

Feature Beschreibung
Paketinstallation Kompatible Abhängigkeitsauflösung und Installation wie pip
Projektverwaltung Ersetzt poetry/pipenv, verwaltet virtuelle Umgebungen und Abhängigkeiten
Caching-Mechanismus Globaler Cache + Hardlinks, wiederholte Installationen in Sekunden
Mehrere Python-Versionen Automatische Installation und Verwaltung mehrerer Python-Versionen
Zero-Config-Workflow uv init + uv add und los geht's
Lizenz MIT (vollständig Open Source)

Das Astral-Team (auch die Autoren von Ruff) hat ihre gesamte Erfahrung mit High-Performance-Toolchains in Rust in uv investiert. Das Ergebnis: 10- bis 100-mal schneller als pip.

📦 GitHub: https://github.com/astral-sh/uv ⭐ Stars: 50k+ (Mitte 2026) 📄 License: MIT

uv installieren

uv lässt sich extrem einfach installieren — ein Befehl genügt:

BASH
# Empfohlener Weg — Installationsskript
curl -LsSf https://astral.sh/uv/install.sh | sh

Nach der Installation überprüfen:

BASH
uv --version
# uv 0.7.x

Wenn du Homebrew verwendest (macOS/Linux):

BASH
brew install uv

Oder mit pipx:

BASH
pipx install uv

Schnellstart: Dein erstes Projekt erstellen

Projekt initialisieren

BASH
# Neues Projekt erstellen (pyproject.toml + virtuelle Umgebung automatisch generiert)
uv init my-app
cd my-app

So sieht die generierte Dateistruktur aus:

my-app/
├── .python-version    # Python-Version fixieren
├── pyproject.toml     # Projektkonfiguration
├── README.md
├── main.py
└── uv.lock            # Abhängigkeiten-Lock-Datei

Der Inhalt von pyproject.toml ist völlig übersichtlich:

TOML
[project]
name = "my-app"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.12"
dependencies = []

Abhängigkeiten hinzufügen

BASH
# Produktionsabhängigkeiten hinzufügen (automatisch auflösen + installieren + locken)
uv add requests
uv add fastapi
uv add "pydantic>=2.0"

# Entwicklungsabhängigkeiten hinzufügen
uv add --dev pytest ruff mypy

Ein Befehl erledigt alles: Abhängigkeiten auflösen → herunterladen → installieren → uv.lock aktualisieren. Der ganze Vorgang dauert normalerweise nur wenige Sekunden.

Code ausführen

BASH
# Skript in der virtuellen Umgebung ausführen
uv run python main.py

# Installierte Tools ausführen
uv run pytest
uv run ruff check .

uv run aktiviert automatisch die virtuelle Umgebung des Projekts. Du musst nicht mehr manuell source .venv/bin/activate eingeben.

Erweiterte Features

Mehrere Python-Versionen verwalten

uv hat einen integrierten Python-Versionsmanager. Er kann mehrere Python-Versionen automatisch herunterladen und verwalten:

BASH
# Installierte Python-Versionen anzeigen
uv python list

# Bestimmte Python-Version installieren
uv python install 3.13
uv python install 3.11

# Python-Version für ein Projekt festlegen
uv python pin 3.13

# Unter einer bestimmten Version ausführen
uv run --python 3.11 python main.py

Das löst ein langjähriges Problem von Python-Entwicklern — pyenv ist nicht mehr nötig.

Workspace (Arbeitsbereich)

Wenn dein Projekt mehrere Pakete hat, ist uvs Workspace-Funktion perfekt dafür:

BASH
# Workspace initialisieren
uv init --package packages/core
uv init --package packages/cli

pyproject.toml:

TOML
[tool.uv.workspace]
members = ["packages/*"]

Skript-Verwaltung

uv unterstützt die Definition von Skript-Aliasen in pyproject.toml:

TOML
[tool.uv.scripts]
dev = "uvicorn main:app --reload"
test = "pytest tests/"
lint = "ruff check . && mypy src/"

Dann einfach ausführen:

BASH
uv run dev
uv run test

CI/CD-Integration

So verwendest du uv in GitHub Actions:

YAML
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install uv
        uses: astral-sh/setup-uv@v5
        with:
          enable-cache: true

      - name: Set up Python
        run: uv python install

      - name: Install dependencies
        run: uv sync --frozen

      - name: Run tests
        run: uv run pytest

enable-cache: true cached die uv-Paketdownloads. Der CI-Geschwindigkeitsgewinn ist enorm.

Geschwindigkeitsvergleich mit pip/poetry

Hier die offiziellen Benchmark-Daten von Astral (Django mit allen Abhängigkeiten installieren):

Tool Erstinstallation Cache-Installation
pip ~15s ~3s
poetry ~20s ~5s
uv ~1,5s ~0,3s

Warum ist uv so schnell?

  1. Rust-Implementierung — Die Abhängigkeitsauflösungs-Engine ist in Rust geschrieben, um Größenordnungen schneller als Python
  2. Globaler Cache — Pakete werden nach dem Download global zwischengespeichert. Projekte teilen sie über Hardlinks
  3. Paralleles Herunterladen — Mehrere Pakete werden gleichzeitig heruntergeladen, die gesamte Netzwerkbandbreite wird ausgenutzt
  4. Intelligentes Caching — Auflösungsergebnisse werden ebenfalls zwischengespeichert, doppelte Berechnungen werden vermieden

Von pip/poetry migrieren

Von pip migrieren

BASH
# Projekt mit bestehender requirements.txt erstellen
uv pip install -r requirements.txt

# Oder nach dem Erstellen eines neuen Projekts importieren
uv init
uv add -r requirements.txt

Von poetry migrieren

BASH
# Abhängigkeiten direkt aus pyproject.toml synchronisieren
uv sync

# Falls Neulocken nötig ist
uv lock

uv ist vollständig kompatibel mit dem pyproject.toml-Format. Die meisten poetry-Projekte können direkt umgestellt werden.

Praktische Befehls-Referenz

BASH
# Projektverwaltung
uv init <name>           # Neues Projekt erstellen
uv add <package>         # Abhängigkeit hinzufügen
uv remove <package>      # Abhängigkeit entfernen
uv sync                  # Abhängigkeiten synchronisieren (wie pip install -e .)
uv lock                  # Abhängigkeiten neu locken

# Ausführen
uv run <command>         # Befehl in der virtuellen Umgebung ausführen
uv tool run <tool>       # Temporäres Tool ausführen (wie pipx run)
uv tool install <tool>   # Globales Tool installieren

# Python-Verwaltung
uv python install <ver>  # Python-Version installieren
uv python list           # Installierte Versionen auflisten
uv python pin <ver>      # Python-Version des Projekts fixieren

# Cache
uv cache dir             # Cache-Verzeichnis anzeigen
uv cache clean           # Cache leeren

Fazit

uv wird gerade zum neuen Standard-Tool für Python-Entwickler. Es kommt vom Ruff-Team, ist extrem schnell, das API-Design ist klar und übersichtlich, und es ist vollständig Open Source.

Empfohlene Einsatzszenarien:

  • ✅ Neue Projekte — starte direkt mit uv init
  • ✅ CI/CD — Cache-freundlich, Build-Zeiten deutlich reduziert
  • ✅ Projekte mit mehreren Python-Versionen — integrierte Versionsverwaltung
  • ✅ Migration von poetry/pipenv — kompatibel mit pyproject.toml

Wenn du noch pip + venv oder poetry verwendest, probier uv unbedingt aus. Sobald du die blitzschnelle Installation erlebt hast, willst du nicht mehr zurück.

🔗 Offizielle Dokumentation: https://docs.astral.sh/uv/ 🔗 GitHub: https://github.com/astral-sh/uv