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.
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.
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.
uv venv
uv pip install requests
uv run my_script.py
Porównanie
| Tool | Co robi | Instalacja pakietów | Tworzy środowiska |
|---|---|---|---|
| pip | Instaluje pakiety w obecnie aktywnym środowisku | Tak | Tak |
| venv | Tworzy izolowane środowiska (zawarte w standardowej bibliotece) | Tak | Tak |
| virtualenv | Starszy i szybszy zewnętrzny odpowiednik venv | Tak | Tak |
| pipx | Ustawia CLI- aplikacje na Python globalnie, każdą — w swoim izolowanym środowisku | Tak (do aplikacji) | Tak (jeden na aplikację, automatyczny) |
| uv | Jedno szybkie narzędzie do wymiany pip, venv, virtualenv, pipx i innych | Tak | Tak |
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.