Rozdział 2 · Ustaw Python!

pip, pipx, venv, virtualenv, uv

Pięć podobnie brzmiących instrumentów — i bardzo różne zadania, które każdy z nich rozwiązuje.

Do tego momentu już korzystałeś pip oraz venv (Sekcje 2.11–2.12). W ekosystemie Python jest ich jeszcze kilka instrumenty o podobnym brzmieniu – analizujmy każdy osobno, a nie jako jedną listę, żeby nie było tego pomylić ich ze sobą.

pip

pip instaluje, aktualizuje i usuwa pakiety do już istniejącego Środowisko aktywne. Nie tworzy niczego, wypełnia tylko to, co już istnieje.

Terminal
pip install requests
pip install requests==2.31.0
pip uninstall requests

venv

venv jest standardowym modułem bibliotecznym (sekcja 2.11), który sprawia, że jedno: tworzy nowe, izolowane środowisko. Wchodzi do samego Python — by je ustanowić Nie musisz robić tego osobno.

virtualenv

virtualenv to pakiet firmy trzeciej, poprzednik venv (moduł venv w standardowej bibliotece w dużej mierze z niej wyrosł). Rozwiązuje to samo Task, ale historycznie był szybszy i wspierał nieco więcej scenariuszy (np. starsze wersje Python, gdzie nie było jeszcze wbudowanej venv). Na tym kursie jesteś całkowicie Dość zwykłych rzeczy venv — virtualenv warto znać z nazwy, jeśli napotkasz go w cudzym projekcie.

pipx

pipx rozwiązuje inny problem — nie "pakiet do mojego projektu", lecz "program z interfejs wiersza poleceń, którego chcę używać z dowolnego folderu." Przykład: Narzędzie Formatowanie kodu black – nie importujesz tego do swojego kodu, tylko ty Uruchom to jako komendę. pipx automatycznie tworzy osobny program dla każdego takiego programu oddzielne środowisko, ale udostępnia samo polecenie globalnie, z dowolnego folderu — bez Aktywacja.

Terminal
pipx install black
black my_script.py

uv

uv (od firmy Astral — to oni tworzą także Ruff, rozdział 2.7) — stosunkowo nowe narzędzie, które opisuje siebie jako jedną zamianę od razu dla pip, pip-tools, pipx, poetry, pyenv, virtualenv i innych. Jego główną zaletą jest szybkość: uv jest 10–100 razy szybszy od pip w typowych operacjach, ponieważ napisany jest w Rust i agresywnie buforuje pakiety.

Terminal
uv venv
uv pip install requests
uv run my_script.py
Oficjalne źródło
docs.astral.sh/uv — aktualna dokumentacja; w momencie pisania kursu stabilna wersja to 0.12.5.

Porównanie

ToolCo robiInstalacja pakietówTworzy środowiska
pipInstaluje pakiety w obecnie aktywnym środowiskuTakTak
venvTworzy izolowane środowiska (zawarte w standardowej bibliotece)TakTak
virtualenvStarszy i szybszy zewnętrzny odpowiednik venvTakTak
pipxUstawia CLI- aplikacje na Python globalnie, każdą — w swoim izolowanym środowiskuTak (do aplikacji)Tak (jeden na aplikację, automatyczny)
uvJedno szybkie narzędzie do wymiany pip, venv, virtualenv, pipx i innychTakTak
Potrzebuję pakietu doprojekt?→ pip / uv pipPotrzebujemy nowegośrodowisko?→ venv / uv venvPotrzebuję CLI-program?→ pipx / uv tool
Trzy najczęściej zadawane pytania oraz narzędzie odpowiedzi na każde z nich
Czego używać na tym kursie
Pokażemy przykłady przez pip oraz venv — to standard, który działa wszędzie „od razu” i na którym najłatwiej zrozumieć, co się naprawdę dzieje. Jeśli później spodoba ci się szybkość uv — łatwo przełączyć: komendy niemal lustrzane.