Dev & Open Source

Von pip zu uv wechseln im Jahr 2026: Ein praktischer Migrationsleitfaden

So wechseln Sie von pip zu uv: Installieren Sie die Binary und ersetzen Sie anschließend pip install durch uv add, python -m venv durch uv venv und python durch uv run. Vollständige Befehls-Übersicht, Migrationsschritte und die Fallstricke, die entscheiden, wann Sie besser nicht wechseln.

Waqas Ahmed Waseer
Waqas Ahmed Waseer 25. Aug. 2026 9 Min. Lesezeit
Von pip zu uv wechseln im Jahr 2026: Ein praktischer Migrationsleitfaden

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:

Aufgabepip / älteres Werkzeuguv-Entsprechung
Eine virtuelle Umgebung erstellenpython -m venv .venvuv venv
Eine Abhängigkeit zu einem Projekt hinzufügenpip install requestsuv add requests
Aus einer requirements-Datei installierenpip install -r requirements.txtuv pip install -r requirements.txt
Eine Abhängigkeit entfernenpip uninstall requestsuv remove requests
Exakte Versionen festschreibenpip freeze > requirements.txtuv lock (schreibt uv.lock)
Die festgeschriebene Umgebung reproduzierenpip install -r requirements.txtuv sync
Ein Skript in der Umgebung ausführensource .venv/bin/activate && python app.pyuv run app.py
Ein CLI-Werkzeug global installierenpipx install ruffuv tool install ruff
Ein Werkzeug einmalig ausführen, ohne Installationpipx run black .uvx black .
Eine Python-Version installierenpyenv install 3.12uv python install 3.12
Die Python-Version des Projekts festpinnenpyenv local 3.12uv 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:

  1. Initialisieren Sie uv im Projekt. Führen Sie uv init im Projektstammverzeichnis aus. Das erzeugt eine pyproject.toml (der moderne Standard zum Deklarieren von Abhängigkeiten), ohne Ihren Code zu überschreiben.
  2. Importieren Sie Ihre bestehenden Abhängigkeiten. Führen Sie uv add -r requirements.txt aus, um jedes festgepinnte Paket aus der alten Datei einzulesen, es in pyproject.toml einzutragen und es dann aufzulösen und zu installieren.
  3. Committen Sie die Lockfile. uv schreibt uv.lock, eine plattformübergreifende Lockfile, die den gesamten Abhängigkeitsgraphen festpinnt. Committen Sie sowohl pyproject.toml als auch uv.lock, damit Teamkollegen und CI exakt dieselben Versionen installieren.
  4. Stellen Sie Ihre Ausführungsbefehle um. Ersetzen Sie python script.py durch uv run script.py, und ersetzen Sie in CI den pip-install-Schritt durch uv sync --frozen (das fehlschlägt, wenn die Lockfile veraltet ist, und so Abweichungen vor dem Deploy abfängt).
  5. Löschen Sie die alten Dateien, sobald alles grün ist. Nachdem CI mit uv durchgelaufen ist, können Sie requirements.txt und jede requirements-dev.txt entfernen und die Entwicklungswerkzeuge stattdessen in eine Dependency-Group in pyproject.toml verschieben.

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.lock verwendet, ist der Gewinn kleiner und die Migration aufwendiger als ein schlichter Umzug von requirements.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_URL oder per pyproject.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.lock committen und in CI uv sync --frozen verwenden. 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

Waqas Ahmed Waseer

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.

Ähnliche Beiträge

Mehr in Dev & Open Source

Alle ansehen

Diskussion · 0

Bleib fair. Kommentare sind öffentlich.

    Newsletter · Montagsausgabe

    Der Montagsbrief.

    Eine E-Mail jeden Montagmorgen. Die kommende Woche in KI, Startups, Hosting und Dev-Tools — ohne Schnickschnack, ohne gesponserten Köder.

    Kostenlos. Abmeldung mit einem Klick.