Schnellere Installation von Python Packages mit uv

Python-Entwickler:innen kennen das Problem: Die Installation von Abhängigkeiten über pip kann je nach Projektgröße und Anzahl der Packages recht lange dauern. Vor allem bei CI/CD-Pipelines oder Docker-Builds summiert sich das schnell zu spürbarem Zeitverlust.

Mit uv gibt es eine vielversprechende Alternative: Ein extrem schneller Paketinstaller, entwickelt von Astral, der pip, virtualenv, venv, pip-tools und Teile von uvicorn vereint.

Links:

Was ist uv?

uv ist ein All-in-One-Tool zum Verwalten von Python-Umgebungen. Es basiert auf Rust und ist dadurch signifikant schneller als pip. Statt einzelne Wheels Schritt für Schritt herunterzuladen und zu entpacken, nutzt uv aggressive Parallelisierung und optimierte Caching-Mechanismen.

Highlights (Quelle PyPi.org):

Für unser Beispiel installieren wir global Python 3.12.6 (64 Bit), öffnen anschließend eine Windows PowerShell Instanz und prüfen unsere Python Installation.

python -V

Output: Python 3.12.6

Anschließend können wir in unserem gewünschen Arbeitsverzeichnis ein virutelles Python Environment Anlegen, Aktivieren und Packages Installieren. In unserem Beispiel erstellen wir unter Dokumente . den Ordner Python-uv-demo .

python -m venv .venv

Nach Installation und Aktivierung des virutellen Python Environments können wir das das Package uv installieren.

pip install uv
uv pip install matplotlib

Die Installation von matplotlib (sowie aller Dependencies) hat mit uv rund 2 Sekunden gedauert. uv pip install matplotlib. Beim zweiten und dritten Durchlauf wurde der uv Cache verwendet und der Prozess dauerte jeweils nur rund 400 ms. Das sind erstaunliche Ergebnisse!

Die Installation von matplotlib (sowie aller Dependencies) hat mit dem klassischen Ansatz pip install matplotlib rund 31 Sekunden gedauert. Auch mit aktiviertem caching dauerte der zweite und dritte Durchlauf rund 22 Sekunden.

Natürlich hängen solche Benchmarks stark von Systemleistung, Internetverbindung und Projektstruktur ab. Dennoch zeigt sich relativ betrachtet eine deutliche Geschwindigkeitssteigerung gegenüber pip.

Benchmark Ergebnisse auf unserem System: (Intel i7-13700H, 32 GB RAM, NVME SSD, 500/100 Mbit Internet)


Wir werden uv künftig verstärkt einsetzen und unsere Erfahrungen mit euch teilen.
In unseren Python-Schulungen ist uv bereits integriert – und auch die erste GitLab-Pipeline läuft erfolgreich damit. 🚀


Diese und viele weitere Tricks lernt ihr in unseren Schulungen und Consultings. Link zu den Terminen

Unsere Website enthält Links zu externen Websites, auf deren Inhalt wir keinen Einfluss haben. Aus diesem Grund übernehmen wir keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der dort bereitgestellten Informationen. Die Verantwortung für den Inhalt der verlinkten Seiten liegt ausschließlich bei den Betreibern der jeweiligen Websites. Verwendung auf eigene Gefahr.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert