Um von pip zu uv zu wechseln, installieren Sie die uv-Binary und ersetzen dann Ihre alltäglichen Befehle eins zu eins: uv venv statt python -m venv, uv add statt pip install und uv run statt eine virtuelle Umgebung von Hand zu aktivieren. uv ist ein einzelnes, in Rust geschriebenes Werkzeug von Astral (dem Team hinter dem Linter Ruff), das pip, virtualenv, pip-tools, pipx und pyenv in einem einzigen Befehl vereint. Astrals eigene Benchmarks beziffern es bei Installationen mit warmem Cache auf 10-100x schneller als pip. Dieser Leitfaden behandelt die genauen Befehle, eine vollständige pip-zu-uv-Übersicht, wie Sie ein bestehendes Projekt migrieren, und die Fälle, in denen Sie noch nicht wechseln sollten.
Was ist uv, und warum von pip wechseln?
uv ist ein in Rust geschriebener Paket- und Projektmanager für Python, der als einheitlicher Ersatz für einen ganzen Stapel älterer Werkzeuge gedacht ist. Die uv-Dokumentation beschreibt es als "ein einziges Werkzeug, das pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv und mehr ersetzt." Der Kern des Versprechens ist Geschwindigkeit und Konsolidierung: Statt sich zu merken, welches Werkzeug Umgebungen erstellt, welches Abhängigkeiten festschreibt und welches Python-Versionen verwaltet, verwenden Sie uv für alles davon, und Installationen, die mit pip Dutzende Sekunden dauerten, sind bei warmem Cache oft in unter einer Sekunde erledigt.
Die Geschwindigkeit stammt von einem parallelen Downloader, einem globalen, inhaltsadressierten Cache, der Pakete per Hardlink einbindet, statt sie erneut herunterzuladen, und einem Resolver, der die Abhängigkeitsberechnung schneller erledigt als pip. Bei einem einzelnen Skript ist der Unterschied angenehm; bei CI-Pipelines und Docker-Builds, die Abhängigkeiten bei jedem Durchlauf neu installieren, summiert er sich zu echten eingesparten Minuten pro Build. Deshalb wurde uv von einer Kuriosität aus dem Jahr 2024 laut einem Entwicklerbeitrag von 2026 zum bevorzugten Python-Paketmanager für neue Projekte.
uv installieren, ohne Ihr aktuelles Setup zu beschädigen
uv wird als eigenständige Binary installiert und existiert somit neben Ihrem vorhandenen Python und pip, statt sie zu ersetzen. Unter macOS oder Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Unter Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Sie können es auch über Homebrew (brew install uv), pipx oder pip selbst beziehen. Führen Sie nach der Installation uv --version aus, um dies zu bestätigen, und uv self update, um später zu aktualisieren. Nichts an der Installation von uv rührt an Ihr System-Python, Ihre bestehenden virtuellen Umgebungen oder Ihr globales pip, sodass Sie es Projekt für Projekt einführen und jederzeit zurückrollen können, indem Sie einfach zu Ihren alten Befehlen zurückkehren.
Die pip-zu-uv-Befehlsübersicht
Der Großteil der Migration ist Muskelgedächtnis. Diese Tabelle ordnet die Befehle, die Sie bereits kennen, ihren uv-Entsprechungen zu:
| Aufgabe | pip / älteres Werkzeug | uv-Entsprechung |
|---|---|---|
| Eine virtuelle Umgebung erstellen | python -m venv .venv | uv venv |
| Eine Abhängigkeit zu einem Projekt hinzufügen | pip install requests | uv add requests |
| Aus einer requirements-Datei installieren | pip install -r requirements.txt | uv pip install -r requirements.txt |
| Eine Abhängigkeit entfernen | pip uninstall requests | uv remove requests |
| Exakte Versionen festschreiben | pip freeze > requirements.txt | uv lock (schreibt uv.lock) |
| Die festgeschriebene Umgebung reproduzieren | pip install -r requirements.txt | uv sync |
| Ein Skript in der Umgebung ausführen | source .venv/bin/activate && python app.py | uv run app.py |
| Ein CLI-Werkzeug global installieren | pipx install ruff | uv tool install ruff |
| Ein Werkzeug einmalig ausführen, ohne Installation | pipx run black . | uvx black . |
| Eine Python-Version installieren | pyenv install 3.12 | uv python install 3.12 |
| Die Python-Version des Projekts festpinnen | pyenv local 3.12 | uv python pin 3.12 |
Die eine Gewohnheit, die es sich abzulegen lohnt, ist die manuelle Aktivierung. uv run löst automatisch die richtige Umgebung auf und aktiviert sie, sodass source .venv/bin/activate optional wird. uv behält außerdem eine pip-kompatible Schnittstelle unter uv pip für die Fälle, in denen Sie einen nahezu direkten Ersatz möchten, ohne den vollständigen Projekt-Workflow zu übernehmen.
Ein bestehendes Projekt Schritt für Schritt migrieren
Bei einem Projekt, das derzeit eine requirements.txt verwendet, dauert der Umzug wenige Minuten:
- Initialisieren Sie uv im Projekt. Führen Sie
uv initim Projektstammverzeichnis aus. Das erzeugt einepyproject.toml(der moderne Standard zum Deklarieren von Abhängigkeiten), ohne Ihren Code zu überschreiben. - Importieren Sie Ihre bestehenden Abhängigkeiten. Führen Sie
uv add -r requirements.txtaus, um jedes festgepinnte Paket aus der alten Datei einzulesen, es inpyproject.tomleinzutragen und es dann aufzulösen und zu installieren. - Committen Sie die Lockfile. uv schreibt
uv.lock, eine plattformübergreifende Lockfile, die den gesamten Abhängigkeitsgraphen festpinnt. Committen Sie sowohlpyproject.tomlals auchuv.lock, damit Teamkollegen und CI exakt dieselben Versionen installieren. - Stellen Sie Ihre Ausführungsbefehle um. Ersetzen Sie
python script.pydurchuv run script.py, und ersetzen Sie in CI den pip-install-Schritt durchuv sync --frozen(das fehlschlägt, wenn die Lockfile veraltet ist, und so Abweichungen vor dem Deploy abfängt). - Löschen Sie die alten Dateien, sobald alles grün ist. Nachdem CI mit uv durchgelaufen ist, können Sie
requirements.txtund jederequirements-dev.txtentfernen und die Entwicklungswerkzeuge stattdessen in eine Dependency-Group inpyproject.tomlverschieben.
Der Astral-Projektleitfaden dokumentiert jeden dieser Schritte im Detail, einschließlich der Strukturierung optionaler und Entwicklungs-Dependency-Groups.
Python-Versionen mit uv verwalten (auf Wiedersehen, pyenv)
uv kann Python-Interpreter selbst installieren und wechseln, und genau diese Funktion erlaubt es, pyenv in Rente zu schicken. uv python install 3.12 lädt einen eigenständigen Build von CPython 3.12 herunter; uv python list zeigt an, was installiert und verfügbar ist; und uv python pin 3.12 schreibt eine .python-version-Datei, damit das Projekt stets diesen Interpreter verwendet. Laut dem Astral-Leitfaden zur Python-Verwaltung installiert uv sogar automatisch eine benötigte Python-Version, wenn Sie zum ersten Mal ein Projekt ausführen, das sie erfordert, sodass ein neuer Mitwirkender ein Repository klonen und uv sync ausführen kann, ohne Python vorher separat zu installieren. Dieses eine Verhalten beseitigt einen der häufigsten Onboarding-Fehler in Python-Teams.
Skripte und Werkzeuge ausführen: uv run und uvx
Zwei Befehle decken den Großteil der täglichen Arbeit ab. uv run führt einen Befehl innerhalb der Projektumgebung aus und erstellt oder aktualisiert diese Umgebung bei Bedarf zuerst, sodass uv run pytest immer gegen die festgeschriebenen Abhängigkeiten läuft, ohne Aktivierungsschritt. uvx (Kurzform für uv tool run) führt ein CLI-Werkzeug in einer Wegwerf-Umgebung aus, ohne es in Ihr Projekt zu installieren, sodass uvx ruff check . Ihren Code mit Ruff linted, selbst wenn Ruff keine Projektabhängigkeit ist. Für Werkzeuge, die Sie ständig verwenden, legt uv tool install ruff sie dauerhaft in Ihren PATH und ersetzt so pipx. uv unterstützt außerdem Inline-Skriptabhängigkeiten, sodass ein einzelnes Skript seine eigenen Anforderungen in einem Kommentarblock deklarieren und mit uv run script.py ausgeführt werden kann, wobei uv im laufenden Betrieb eine temporäre Umgebung aufbaut.
Fallstricke und wann man noch nicht wechseln sollte
uv ist schnell und stabil genug für den Produktivbetrieb, geht aber ehrlich damit um, dass es noch vor 1.0 steht: Stand Ende August 2026 ist die aktuellste Version 0.12.5, und das Projekt hat noch kein 1.0 ausgeliefert. In der Praxis bedeutet das gelegentliche Breaking Changes zwischen Minor-Versionen, pinnen Sie Ihre uv-Version daher in CI fest (uv veröffentlicht dafür eine GitHub Action und Docker-Images), statt stets die neueste zu ziehen. Ein paar weitere Dinge, die Sie vor dem Wechsel abwägen sollten:
- Poetry- oder PDM-Teams. Wenn Ihr Projekt bereits Poetry mit einer funktionierenden
poetry.lockverwendet, ist der Gewinn kleiner und die Migration aufwendiger als ein schlichter Umzug vonrequirements.txt. Wechseln Sie, wenn die Geschwindigkeit für Sie zählt, nicht reflexartig. - conda / wissenschaftliche Stacks. uv zielt auf das PyPI-Ökosystem. Wenn Sie für kompilierte wissenschaftliche Pakete oder Nicht-Python-Abhängigkeiten auf conda angewiesen sind, ersetzt uv conda nicht, und das Mischen beider erfordert Sorgfalt.
- Firmen-Index und Mirrors. Richten Sie uv auf einen privaten Index mit
UV_INDEX_URLoder perpyproject.toml-Konfiguration aus, bevor Sie es in einem internen Netzwerk ausrollen, genauso wie Sie pip konfigurieren würden. - Die Lockfile ist nicht optional. Der Reproduzierbarkeitsgewinn stellt sich nur ein, wenn Sie
uv.lockcommitten und in CIuv sync --frozenverwenden. Lassen Sie das weg, stehen Sie nicht besser da als bei losen pip-Installationen.
Führen Sie es zuerst in einem neuen Nebenprojekt ein, spüren Sie die Geschwindigkeit und bringen Sie es dann in Ihre Haupt-Repositories. Wenn Sie Ihre Builds containerisieren, verstärkt die Kombination von uv mit einem schlanken Base-Image den Vorteil, dieselbe Reproduzierbarkeitslogik, die hinter unserer Podman-vs-Docker-Analyse steht und die es wert ist, zusammen mit einem sauberen git-worktrees-Workflow für parallele Branches einzurichten. Teams, die Builds headless automatisieren, werden es außerdem in jeder skriptgesteuerten CI- oder Agent-Pipeline haben wollen.
Häufig gestellte Fragen
Wie führe ich eine Python-Datei mit uv aus?
Verwenden Sie uv run app.py. uv löst die Abhängigkeiten des Projekts auf, erstellt oder aktualisiert bei Bedarf die virtuelle Umgebung und führt die Datei darin aus, sodass Sie die Umgebung nie von Hand aktivieren müssen. Für ein einmaliges Werkzeug verwenden Sie uvx <tool>, um es in einer temporären Umgebung auszuführen.
Muss ich meine venv mit uv noch aktivieren?
Nein. uv run und uv sync arbeiten automatisch auf der .venv des Projekts. Sie können weiterhin source .venv/bin/activate ausführen, wenn Sie eine klassische Shell-Sitzung bevorzugen, und uv venv erstellt eine Standard-virtualenv, die sich auf dieselbe Weise aktivieren lässt, doch für die normale Arbeit ist die Aktivierung optional.
Ist uv sicher für den Produktiveinsatz? uv wird 2026 breit im Produktivbetrieb eingesetzt und wird von Astral getragen, steht aber noch vor 1.0 (0.12.5 zum Zeitpunkt des Schreibens), pinnen Sie daher eine exakte uv-Version in CI fest und lesen Sie das Changelog, bevor Sie aktualisieren. Die Python-Builds, die es installiert, sind eigenständige CPython-Distributionen, keine eigenen Forks.
Wie verwende ich uv-Python in VS Code?
Führen Sie uv sync aus, um die .venv zu erstellen, öffnen Sie dann in VS Code die Befehlspalette, wählen Sie "Python: Select Interpreter" und wählen Sie den Interpreter im .venv-Ordner Ihres Projekts. VS Code verwendet dann uvs Umgebung zum Ausführen, Debuggen und Linten.
Sources
- Astral — uv-Dokumentation: der Benchmark "10-100x schneller als pip" und die Liste der Werkzeuge, die uv ersetzt.
- Astral — Leitfaden zum Arbeiten an Projekten:
uv init,uv add, Lockfiles und Dependency-Groups. - Astral — Python installieren und verwalten: wie uv Python-Versionen installiert und festpinnt.
- astral-sh/uv-Releases (GitHub): aktuelle 0.12.x-Versionen und Status vor 1.0.
- Real Python — Python-Projekte mit uv verwalten: eine Rundum-Anleitung zum uv-Workflow.
- DEV — Warum uv 2026 zum bevorzugten Python-Paketmanager wurde: Kontext zur Verbreitung und die Geschwindigkeitsbegründung.
Waqas Ahmed Waseer
Waqas Ahmed Waseer ist Entwickler und Automation-Builder mit über 8 Jahren Erfahrung im Aufbau von Produktivsystemen, die von mehr als 100.000 Menschen genutzt werden. Er baut individuelle Multi-Tenant-SaaS, KI-Automatisierung (n8n, LLM-Workflows, WhatsApp-Bots) und Hosting-Infrastruktur (WHM/cPanel, CloudLinux) — und ist der Macher von WaSphere, FlowMaticX und der Hosting-Marke WaseerHost. Über 100 Projekte für KMU, Agenturen und finanzierte Start-ups umgesetzt.



