- uv ist ein ultraschneller Python-Paket-Installer und Resolver, der in Rust geschrieben wurde und dafür entwickelt wurde,
pip- undpip-tools-Workflows zu ersetzen - uv ist ein Meilenstein auf dem Weg zu „Cargo for Python“: ein schneller, zuverlässiger und einfach zu bedienender umfassender Python-Projekt- und Paketmanager
- Geplant ist, die Betreuung von Rye zu übernehmen, einem von Armin Ronacher experimentell entwickelten Python-Packaging-Tool, und uv zu einem einheitlichen Nachfolgeprojekt auszubauen
Besessener Fokus auf Performance
- uv ist ohne Caching 8- bis 10-mal schneller als
pipundpip-tools, mit Cache sogar 80- bis 115-mal schneller. - Es verwendet einen globalen Modul-Cache, lädt Abhängigkeiten nicht erneut herunter und baut sie nicht neu, und minimiert auf unterstützten Dateisystemen den Speicherplatzbedarf durch Copy-on-Write und Hardlinks.
Für einfache Einführung optimiert
- Die erste Version von uv unterstützt die APIs von
pipundpip-toolsund kann in bestehenden Projekten ohne Konfigurationsänderungen verwendet werden. - uv wird als einzelnes statisches Binary bereitgestellt und kann
pip,pip-toolsundvirtualenversetzen. - Es kann unabhängig von Python selbst installiert werden, ohne dass
pip-Installationen je nach Python-Version verwaltet werden müssen.
„Cargo for Python“: uv und Rye
- uv ist ein Zwischenmeilenstein auf dem Weg zu einem schnellen, zuverlässigen und einfach zu bedienenden integrierten Python-Paket- und Projektmanager.
- Ziel für uv ist ein einzelnes Binary, das nicht nur
pip,pip-toolsundvirtualenv, sondern auchpipx,tox,poetry,pyenv,ruffund mehr umfasst.
API-Kompatibilität
- Statt
pip installkannuv pip installverwendet werden, um Python-Abhängigkeiten über die Kommandozeile, aus Requirements-Dateien oder auspyproject.tomlzu installieren. - Statt
pip-compilekannuv pip compileverwendet werden, um eine gesperrterequirements.txtzu erzeugen. - Statt
pip-synckannuv pip syncverwendet werden, um eine gesperrterequirements.txtmit einer virtuellen Umgebung zu synchronisieren.
Roadmap
- Nach diesem Release soll zunächst der Nutzer-Support priorisiert und an Verbesserungen bei Kompatibilität, Performance und Stabilität gearbeitet werden.
- Danach ist das Ziel, uv zu einem vollständigen Python-Projekt- und Paketmanager auszubauen.
Dank
- Allen, die direkt oder indirekt zur Entwicklung von uv beigetragen haben, wird gedankt.
- Besonderer Dank gilt Jacob Finkelman und Matthieu Pizenberg, deren PubGrub als grundlegender Versions-Resolver in uv verwendet wird.
Meinung von GN⁺
- uv ist ein innovatives Tool, das Python-Entwicklern eine deutlich höhere Performance als bestehende
pip-Werkzeuge bietet und die Zeit für das Aufsetzen von Projekten erheblich verkürzen kann. - Da es in Rust geschrieben ist, spiegelt es einen neuen Trend im Python-Ökosystem wider, der Performance und Stabilität in den Vordergrund stellt, was das Entwicklererlebnis deutlich verbessern dürfte.
- Die Entwicklung von uv zielt auf eine Vereinheitlichung von Python-Packaging- und Projektmanagement-Tools ab, was Entwicklern effizienteres und konsistenteres Arbeiten ermöglichen dürfte.
3 Kommentare
Die Geschwindigkeit ist wirklich enorm;;
Es wäre schön, wenn es erweitert würde und conda ersetzen könnte.
Hacker-News-Kommentare
Zweifel an einem VC-finanzierten pip-and-more
Frage dazu, dass uv keine plattformunabhängigen Lockfiles erzeugt
Positive Einschätzung der Unterstützung alternativer Strategien zur Abhängigkeitsauflösung in uv
--resolution=lowestaber auch die Möglichkeit, mit den niedrigsten kompatiblen Versionen zu testen.--python-versionLösungen auch für andere Python-Versionen als die aktuell installierte erzeugen kann, wird als großartig bewertet.Frage nach der Komplexität des Python-Paketsystems
Interessanter Aspekt daran, dass uv pubgrub-rs verwendet
Erwähnung einer Vorhersage zur Richtung des Astral-Teams
Persönliche Erfahrung mit der Geschwindigkeit von pip
Skeptische Sicht auf einen weiteren neuen Python-Paketmanager
Neugier auf die Entscheidung von uv, plattformspezifische requirements.txt-Dateien zu erzeugen
requirements.txt-Dateien erzeugt, statt plattformunabhängigepoetry.lock- oderpdm.lock-Dateien zu erstellen.Glückwünsche und positive Reaktion auf die Arbeit des Astral-Teams
Frage zu Kompilierungsproblemen bei pip-Paketen