uv – nowy menedżer pakietów, projektów i środowisk Python
Dobre strony programu Python uv
Python uv (wymawiane „ju-wi”) to nowoczesny, wydajny menedżer pakietów i projektów w języku Python, napisany w Rust. Został zaprojektowany jako gotowe rozwiązanie zastępujące tradycyjne narzędzia do zarządzania pakietami Python, takie jak pip, pip-tools, virtualenv, pipx i pyenv, z myślą o uproszczeniu i przyspieszeniu procesów rozwoju oprogramowania Python.
uv jest rozwijany przez firmę Astral, zespół stojący za popularnym linterem Python Ruff. Narzędzie to ma na celu rozwiązanie powszechnych problemów w ekosystemie Python, takich jak wolne instalacje, konflikty zależności i skomplikowane zarządzanie środowiskami, wykorzystując wydajność języka Rust oraz nowoczesną architekturę oprogramowania.

Kluczowe funkcje uv
- Wyjątkowa szybkość: uv jest znacznie szybszy od tradycyjnych narzędzi – typowo 8–10 razy szybszy niż pip bez buforowania (cache), a z ciepłym buforem nawet 80–115 razy szybszy.
- Wszystko w jednym: Łączy instalowanie pakietów, rozwiązywanie zależności, zarządzanie wirtualnymi środowiskami, zarządzanie wersjami Pythona, tworzenie szkieletów projektów oraz wykonywanie skryptów w jednym narzędziu.
- Kompatybilność: Oferuje interfejs wiersza poleceń zgodny z pitem, co ułatwia przestawienie się na niego bez dużej krzywej uczenia się.
- Solidne zarządzanie zależnościami: Zapewnia precyzyjne rozwiązywanie zależności i obsługę plików blokady (lockfile) dla powtarzalnych środowisk.
- Automatyczne środowiska wirtualne: Tworzy i zarządza środowiskami wirtualnymi automatycznie, co zmniejsza potrzebę ręcznej konfiguracji.
- Wsparcie wieloplatformowe: Działa na systemach macOS, Linux i Windows.
- Instalacja samodzielna: Może zostać zainstalowany bez wymagania obecności Pythona lub Rusta, przy użyciu prostego instalatora lub polecenia
curl.

Nadal masz wątpliwości, po co używać uv?
- Wydajność: Dramatycznie skraca czas instalacji pakietów i rozwiązywania zależności.
- Prostota: Ujednolica wiele narzędzi w jednym, upraszczając konfigurację i zarządzanie projektami.
- Niezawodność: Dostarcza spójne, powtarzalne środowiska z czytelnymi komunikatami o błędach i mechanizmem rozwiązywania konfliktów.
- Nowoczesne standardy: Wsparcie dla
pyproject.tomldo konfiguracji projektu, zgodne z obecnymi standardami pakietowania Pythona.
Przykłady zastosowań
Wypróbujmy coś ekscytującego!
- Rozpoczęcie nowego projektu:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Tworzy to katalog projektu, konfiguruje środowisko wirtualne, instaluje zależności i uruchamia skrypty w izolowanym środowisku.
- Zarządzanie skryptami z zależnościami inline:
uv add --script script.py requests
uv run script.py
uv może zarządzać zależnościami dla skryptów w pojedynczym pliku, bez osobnych plików wymagań.
Porównanie z tradycyjnymi narzędziami
| Funkcja | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Szybkość | Bardzo szybki | Wolny | Umiarkowany |
| Środowiska wirtualne | Automatyczne | Ręczne | Automatyczne |
| Rozwiązywanie zależności | Zaawansowane | Podstawowe | Zaawansowane |
| Zarządzanie wersją Pythona | Tak | Nie (wymaga pyenv) | Nie |
| Obsługa pliku blokady | Tak | Nie (wymaga pip-tools) | Tak |
| Wykonywanie skryptów | Zintegrowane | Nie | Ograniczone |
Jak zainstalować i zacząć korzystać z UV na moim systemie
Aby zainstalować i zacząć korzystać z uv na swoim systemie, wykonaj następujące proste kroki:
Instalacja
- Samodzielny instalator (zalecane)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Albo, jeśli wolisz wget:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Określona wersja: Możesz zażądać konkretnej wersji, dodając ją do adresu URL, np.
https://astral.sh/uv/0.7.15/install.sh.
- Alternatywa: instalacja przez pip (jeśli masz zainstalowany Python)
pip install uv
Uwaga: Ta metoda jest mniej zalecana do dostępu systemowego, chyba że wiesz, co robisz, ponieważ może zakłócić systemowe środowisko Pythona.
- Instalacja przez pipx (do izolowanej, użytkownikowej instalacji)
pipx install uv
Ta metoda jest czystsza dla globalnego dostępu, jeśli już używasz pipx.
Pierwsze kroki
Aby Sprawdzić Instalację – Uruchom:
uv
Powinieneś zobaczyć menu pomocy potwierdzające, że uv jest zainstalowany i gotowy do użycia.
Aby Utworzyć i Aktywować Środowisko Wirtualne
- Utwórz venv:
uv venv test
- Aktywuj je na Linux/macOS:
source test/bin/activate
- Aktywuj je na Windows:
.\test\Scripts\activate
Teraz możesz użyć uv pip install do instalowania pakietów w tym środowisku.
Zainicjuj Nowy Projekt
uv init
Tworzy to pyproject.toml i .gitignore dla Twojego projektu.
Dodaj Zależności
Dodaj pakiet:
uv add
Aktualizuje to pyproject.toml i generuje/aktualizuje plik blokady.
Synchronizuj Zależności
Zainstaluj wszystkie zależności w Twoim środowisku:
uv sync
Albo użyj interfejsu zgodnego z pitem:
uv pip install
Zapewnia to, że wszystkie zależności zostaną zainstalowane zgodnie z Twoim plikiem blokady.
Uruchom Skrypty
Użyj:
uv run script.py
Automatycznie zarządza środowiskiem i zależnościami dla Twojego skryptu.
Integracja z powłoką (Opcjonalnie)
Dla płynniejszego przepływu pracy możesz dodać integrację z powłoką do swojego pliku .zshrc lub .bashrc, aby automatycznie aktywować domyślne środowisko wirtualne i zmapować pip na uv pip.
Po wykonaniu tych kroków będziesz miał uv zainstalowany i gotowy do zarządzania projektami Python z szybkością i łatwością.
Instalowanie konkretnych wersji Pythona
Możesz użyć uv, aby instalować i zarządzać konkretnymi wersjami Pythona dla swoich projektów.
- Zainstaluj najnowszą stabilną wersję Pythona:
To polecenie pobiera i instaluje najnowszą dostępną stabilną wersję Pythona.uv python install - Zainstaluj konkretną wersję:
Instaluje to najnowszy wydanie łatkowe Pythona 3.12 (np. 3.12.3).uv python install 3.12 - Zainstaluj dokładną wersję łatkową:
Instaluje to dokładnie Pythona 3.12.3.uv python install 3.12.3 - Zainstaluj wiele wersji:
Instaluje to Pythona 3.9, 3.10 i 3.11.uv python install 3.9 3.10 3.11 - Zainstaluj wersję pasującą do ograniczenia:
Zmienia to wymagania dotyczące wersji Pythona w projekcie.uv python install '>=3.8,=3.11"
Dodatkowe uwagi
Automatyczne pobieranie: Domyślnie uv automatycznie pobierze i zainstaluje wymagane wersje Pythona, jeśli nie zostaną znalezione na Twoim systemie.
Systemowy Python: uv może istniejące instalacje Pythona, jeśli są obecne, lub możesz wymusić użycie systemowego Pythona za pomocą flagi --no-managed-python.
Aktualizacje: Możesz aktualizować wersje Pythona zarządzane przez uv do najnowszego wydania łatkowego za pomocą:
uv python upgrade 3.12
Albo zaktualizować wszystkie zainstalowane wersje:
uv python upgrade
Aktualizacje między wersjami drobnymi (np. z 3.12 na 3.13) nie są wspierane.
Podsumowując, uv oferuje elastyczne i potężne narzędzia do instalowania, zarządzania i używania konkretnych wersji Pythona w Twoich projektach.
Jak UV wykrywa dostępne interpretory Pythona na różnych systemach
UV wykrywa dostępne interprety Pythona na różnych systemach, sprawdzając zestaw dobrze zdefiniowanych lokalizacji i zapytując każdego kandydata o metadane wersji. Oto jak to działa:
- Instalacje Pythona zarządzane przez UV:
UV najpierw szuka w katalogu określonym przez zmienną środowiskowąUV_PYTHON_INSTALL_DIR, gdzie przechowuje swoje własne, zarządzane wersje Pythona. - Systemowy PATH:
Na macOS i Linux UV sprawdza pliki wykonywalne o nazwiepython,python3lubpython3.x(gdziexto numer wersji) w katalogach wymienionych w systemowymPATH. Na Windows szukapython.exe. - Lokalizacje specyficzne dla Windowsa:
Na Windows UV sprawdza również rejestr Windowsa oraz interpretery Pythona z Microsoft Store, korzystając z wyniku poleceniapy --list-paths. - Środowiska wirtualne:
Jeśli aktywne jest lub określono środowisko wirtualne, UV sprawdza interpreter w tym środowisku pod kątem kompatybilności, zanim zacznie szukać w innych miejscach. - Zapytanie o metadane:
Każdy znaleziony plik wykonywalny jest zapytywany o metadane wersji. Rozważane są tylko te pliki, które odpowiadają żądanej wersji (lub ograniczeniu wersji). Pliki niewykonywalne są ignorowane. - Preferencje i rozwiązania awaryjne:
Domyślnie UV preferuje systemowe instalacje Pythona, ale można to zmienić za pomocą opcji, aby preferować wersje zarządzane lub używać wyłącznie wersji zarządzanych/systemowych. Jeśli nie zostanie znaleziony odpowiedni interpreter, UV może pobrać i zainstalować wymaganą wersję.
Ten solidny proces wykrywania zapewnia, że UV może niezawodnie lokalizować i używać poprawnego interpretera Pythona na różnych systemach operacyjnych i w różnych środowiskach.
Przydatne linki
- Strona główna uv: https://docs.astral.sh/uv/
- Pakiet uv: https://pypi.org/project/uv/
- GitHub uv: https://github.com/astral-sh/uv/
- Ściągawka Python
- Ściągawka Conda
- Ściągawka venv
- Ściągawka Bash
- Ściągawka venv
- Popularność języków programowania i frameworków
- Hub narzędzi programisty — ściągawki, narzędzia CLI i przepływy pracy deweloperskie