uv - nowy menedżer pakietów, projektów i środowisk w Pythonie
Zalety Pythona uv
Python uv (czytane jako „you-vee”) to nowoczesny, wysokiej wydajności pakiet i menedżer projektów dla Pythona napisany w języku Rust. Jest zaprojektowany jako gotowy do użycia zamiennik tradycyjnych narzędzi do zarządzania pakietami Pythona, takich jak pip
, pip-tools
, virtualenv
, pipx
i pyenv
, mając na celu uproszczenie i przyspieszenie przepływów pracy w tworzeniu aplikacji w Pythonie.
uv jest rozwijany przez Astral, zespół założycieli popularnego lintera Pythona Ruff, i został zaprojektowany w celu rozwiązania typowych problemów w ekosystemie Pythona – takich jak wolne instalacje, konflikty zależności i złożone zarządzanie środowiskami – wykorzystując wydajność Rusta i nowoczesną architekturę oprogramowania.
Główne cechy uv
- Wyróżniająca się szybkość: uv jest znacznie szybszy niż tradycyjne narzędzia – zazwyczaj 8–10 razy szybszy niż pip bez cache, a nawet do 80–115 razy szybszy z użyciem ciepłego cache.
- Wszystko w jednym narzędziu: łączy instalację pakietów, rozwiązywanie zależności, zarządzanie środowiskami wirtualnymi, zarządzanie wersjami Pythona, tworzenie szablonów projektów oraz wykonywanie skryptów w jednym narzędziu.
- Kompatybilność: oferuje interfejs wiersza poleceń kompatybilny z pip, co ułatwia jego przyjęcie bez konieczności uczenia się nowego sposobu działania.
- Zaawansowane zarządzanie zależnościami: zapewnia precyzyjne rozwiązywanie zależności i wsparcie dla plików lockfile, umożliwiające tworzenie powtarzalnych środowisk.
- Automatyczne środowiska wirtualne: tworzy i zarządza środowiskami wirtualnymi automatycznie, zmniejszając konieczność ręcznego konfigurowania.
- Wsparcie wielu platform: działa na macOS, Linux i Windows.
- Instalacja samodzielna: może zostać zainstalowana bez konieczności posiadania Pythona lub Rusta, korzystając z prostego instalatora lub
curl
.
Nadal nie wiesz, dlaczego warto używać uv?
- Wydajność: znacząco zmniejsza czas instalacji pakietów i rozwiązywania zależności.
- Prostota: łączy wiele narzędzi w jedno, upraszczając konfigurację i zarządzanie projektami.
- Nadmiernie niezawodność: zapewnia spójne, powtarzalne środowiska z wyraźnymi komunikatami o błędach i rozwiązywaniem konfliktów.
- Nowoczesne standardy: obsługuje
pyproject.toml
do konfiguracji projektu, zgodnie z obecnymi standardami pakowania Pythona.
Przykładowe przypadki użycia
Zróbmy coś ciekawego!
- Uruchamianie nowego projektu:
uv init myproject
cd myproject
uv add requests
uv run python script.py
To tworzy katalog projektu, konfiguruje środowisko wirtualne, instaluje zależności i uruchamia skrypty w izolowanym środowisku.
- Zarządzanie skryptami z zależnościami w linii:
uv add --script script.py requests
uv run script.py
uv może zarządzać zależnościami dla pojedynczych skryptów bez oddzielnych plików wymagań.
Porównanie z tradycyjnymi narzędziami
Funkcja | uv | pip/virtualenv | Poetry |
---|---|---|---|
Szybkość | Bardzo szybki | Wolny | Średni |
Środowiska wirtualne | Automatyczne | Ręczne | Automatyczne |
Rozwiązywanie zależności | Zaawansowane | Podstawowe | Zaawansowane |
Zarządzanie wersjami Pythona | Tak | Nie (wymaga pyenv) | Nie |
Wsparcie dla plików lockfile | Tak | Nie (wymaga pip-tools) | Tak |
Wykonywanie skryptów | Integrowane | Nie | Ograniczone |
Jak mogę zainstalować i zacząć korzystać z UV na swoim systemie
Aby zainstalować i zacząć korzystać z uv na swoim systemie, wykonaj poniższe proste kroki:
Instalacja
- Instalator samodzielny (zalecany)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Lub, 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"
- Konkretna wersja: Możesz żądać konkretnej wersji, dodając ją do URL, np.
https://astral.sh/uv/0.7.15/install.sh
.
- Alternatywa: Instalacja przez pip (jeśli masz zainstalowany Python)
pip install uv
Uwaga: ten sposób nie jest zalecany do instalacji na całym systemie, chyba że wiesz, co robisz, ponieważ może zanieczyszczyć środowisko Pythona systemowe.
- Instalacja przez pipx (dla izolowanego, użytkownika-wide instalacji)
pipx install uv
Ten sposób jest czystszy w przypadku globalnego dostępu, jeśli już korzystasz z pipx
.
Rozpoczęcie pracy
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 instalacji pakietów w tym środowisku.
Inicjalizacja nowego projektu
uv init
To tworzy pyproject.toml
i .gitignore
dla Twojego projektu.
Dodawanie zależności
Dodaj pakiet:
uv add
To aktualizuje pyproject.toml
i generuje/aktualizuje plik lockfile.
Synchronizacja zależności
Zainstaluj wszystkie zależności w swoim środowisku:
uv sync
Lub użyj interfejsu kompatybilnego z pip:
uv pip install
To zapewnia, że wszystkie zależności są zainstalowane zgodnie z Twoim plikiem lockfile.
Uruchamianie skryptów
Użyj:
uv run script.py
To automatycznie zarządza środowiskiem i zależnościami dla Twojego skryptu.
Integracja z powłoką (opcjonalnie)
Dla płynniejszego działania możesz dodać integrację z powłoką do swojego .zshrc
lub .bashrc
, aby automatycznie aktywować domyślne środowisko wirtualne i aliasować pip
do uv pip
.
Z tych kroków będziesz miał uv zainstalowany i gotowy do zarządzania swoimi projektami Pythona z prędkością i łatwością.
Instalowanie konkretnych wersji Pythona
Możesz użyć uv do instalowania konkretnych wersji Pythona i zarządzania nimi dla swoich projektów.
- Instalacja najnowszej stabilnej wersji Pythona:
To polecenie pobiera i instaluje najnowszą stabilną wersję Pythona dostępna.uv python install
- Instalacja konkretnej wersji:
To instaluje najnowszą wersję poprawkową Pythona 3.12 (np. 3.12.3).uv python install 3.12
- Instalacja konkretnego numeru wersji poprawki:
To instaluje dokładnie Pythona 3.12.3.uv python install 3.12.3
- Instalacja wielu wersji:
To instaluje Pythona 3.9, 3.10 i 3.11.uv python install 3.9 3.10 3.11
- Instalacja wersji spełniającej warunek:
To zmienia wymaganie wersji Pythona w projekcie.uv python install '>=3.8,=3.11'
Dodatkowe uwagi
Automatyczne pobieranie: Domyślnie uv automatycznie pobiera i instaluje wymagane wersje Pythona, jeśli nie znajdą się one na Twoim systemie.
Python systemowy: uv może używać istniejących instalacji Pythona, jeśli są obecne, lub możesz zmusić go do użycia Pythona systemowego za pomocą flagi --no-managed-python
.
Aktualizacja: Możesz zaktualizować wersje Pythona zarządzane przez uv do najnowszej wersji poprawki za pomocą:
uv python upgrade 3.12
Lub zaktualizować wszystkie zainstalowane wersje:
uv python upgrade
Aktualizacja między wersjami mniejszymi (np. 3.12 do 3.13) nie jest obsługiwana.
Podsumowując, uv oferuje elastyczne i potężne narzędzia do instalowania, zarządzania i korzystania z konkretnych wersji Pythona w Twoich projektach.
Jak UV odkrywa dostępne interpretatory Pythona na różnych systemach
UV odkrywa dostępne interpretatory Pythona na różnych systemach, sprawdzając zestaw dobrze zdefiniowanych lokalizacji i konsultując każdy kandydat pod kątem jego metadanych wersji. Oto jak to działa:
- Zarządzane instalacje Pythona:
UV najpierw sprawdza katalog określony przez zmienną środowiskowąUV_PYTHON_INSTALL_DIR
, gdzie przechowuje własne zarządzane wersje Pythona. - Ścieżka systemowa:
Na macOS i Linuxie UV sprawdza, czy istnieją pliki wykonywalne o nazwachpython
,python3
lubpython3.x
(gdziex
to numer wersji) w katalogach wymienionych w systemowej ścieżce. Na Windowsie sprawdzapython.exe
. - Lokalizacje specyficzne dla Windows:
Na Windowsie UV sprawdza również rejestr Windows i interpretatory Pythona z Microsoft Store, korzystając z danych zpy --list-paths
. - Środowiska wirtualne:
Jeśli aktywne jest środowisko wirtualne lub zostało określone, UV sprawdza kompatybilność interpretera w tym środowisku przed przeszukiwaniem innych lokalizacji. - Konsultacja metadanych:
Każdy odkryty plik wykonywalny jest konsultowany pod kątem jego metadanych wersji. Tylko pliki wykonywalne, które odpowiadają żądanej wersji (lub warunkowi wersji) są brane pod uwagę. Niekompatybilne pliki są ignorowane. - Preferencje i awaryjne rozwiązanie:
Domyślnie UV preferuje instalacje Pythona systemowe, ale możesz to zmienić za pomocą opcji, aby preferować zarządzane lub używać tylko zarządzanych/wersji systemowych. Jeśli nie zostanie znaleziony odpowiedni interpreter, UV może pobrać i zainstalować wymaganą wersję.
Ten solidny proces odkrywania zapewnia, że UV może niezawodnie lokalizować i używać odpowiedniego interpretera Pythona w różnych systemach operacyjnych i środowiskach.
Przydatne linki
- Strona główna uv: https://docs.astral.sh/uv/
- Pakiet uv: https://pypi.org/project/uv/
- Repozytorium GitHub uv: https://github.com/astral-sh/uv/
- Python Cheatsheet
- Conda Cheatsheet
- venv Cheatsheet
- Bash Cheat Sheet
- Ollama cheatsheet
- venv Cheatsheet
- Popularność języków i frameworków programistycznych