Czym właściwie jest pip
pip to narzędzie, które instaluje biblioteki Pythona napisane przez kogoś innego. Gdy uruchamiasz pip install requests, wyszukuje requests w PyPI (Python Package Index), pobiera właściwą wersję dla twojej platformy i umieszcza ją w katalogu site-packages twojej instalacji Pythona. Od tej chwili import requests działa.
Każda instalacja Pythona 3 z python.org, Homebrew albo menedżera pakietów Linuksa ma już pip. Zanim cokolwiek zainstalujesz, sprawdź:
python -m pip --version
Powinien pojawić się numer wersji i ścieżka do modułu pip. Jeśli polecenie się nie powiedzie, najpewniejsza naprawa to:
python -m ensurepip --upgrade
To instaluje pip w twoim Pythonie z kopii dołączonej do interpretera.
python -m pip kontra pip
Zobaczysz obie formy. Robią prawie to samo, z jedną ważną różnicą: python -m pip używa python z twojej zmiennej PATH, tego samego, którego używają twoje skrypty. Samo pip używa tego pip, który akurat znajdzie się pierwszy, a to nie zawsze jest ten sam.
Gdy masz zainstalowany więcej niż jeden Python (na macOS łatwo do tego dojść), samo pip prowadzi do mylącej sytuacji "biblioteka jest zainstalowana, a mój kod nadal zgłasza ModuleNotFoundError".
Praktyczna zasada: używaj python -m pip ..., gdy chcesz mieć pewność, który interpreter dostanie pakiet. Samo pip jest w porządku do szybkiej pracy, gdy masz tę pewność.
Instalowanie pakietu
Podstawowe polecenie:
python -m pip install requests
Pobiera ono requests z PyPI razem ze wszystkim, od czego zależy, i instaluje. Minutę później możesz go używać:
Instalowanie kilku pakietów naraz:
python -m pip install requests pandas rich
Przypinanie konkretnej wersji:
python -m pip install "django==5.0.2"
python -m pip install "requests>=2.30,<3"
W niektórych powłokach cudzysłowy mają znaczenie: chronią == i < przed zinterpretowaniem jako operatory powłoki.
Aktualizowanie i odinstalowywanie
python -m pip install --upgrade requests
python -m pip uninstall requests
--upgrade pobiera najnowszą wersję spełniającą podane ograniczenia. uninstall usuwa pakiet, ale nie jego zależności; te zostają, dopóki nie usuniesz ich wprost.
Żeby sam pip był aktualny:
python -m pip install --upgrade pip
Warto to uruchamiać co kilka miesięcy. Nowsze wersje pip wyłapują więcej problemów z instalacją i lepiej rozwiązują zależności.
Sprawdzanie, co jest zainstalowane
python -m pip list
python -m pip show requests
list pokazuje każdy pakiet zainstalowany w bieżącym Pythonie. show requests wypisuje wersję, lokalizację, zależności i licencję tego konkretnego pakietu. Przydaje się, gdy zastanawiasz się, "której wersji tak naprawdę używam?".
requirements.txt: spisywanie zależności
Gdy projekt ma więcej niż kilka bibliotek, spisz je. pip freeze zrobi to za ciebie:
python -m pip freeze > requirements.txt
Powstaje plik z jedną przypiętą zależnością w każdej linii:
django==5.0.2
requests==2.31.0
rich==13.7.1
Każdy, kto sklonuje twoje repozytorium, może odtworzyć instalację poleceniem:
python -m pip install -r requirements.txt
pip freeze zapisuje wszystko, co jest zainstalowane, łącznie z zależnościami pośrednimi. To dobre do dokładnego odtworzenia środowiska, ale robi się tłoczno, gdy chcesz mieć tylko biblioteki najwyższego poziomu, które twój kod faktycznie importuje. Wiele projektów prowadzi ręcznie plik requirements.txt z bezpośrednimi zależnościami, a pośrednie zostawia do rozwiązania pip.
W nowoczesnych projektach requirements.txt jest wypierany przez pyproject.toml (w parze z narzędziami takimi jak pip-tools, uv, poetry czy hatch). Idea jest ta sama, "spisz zależności i zainstaluj je jednym poleceniem", ale format pliku jest bardziej uporządkowany.
Zawsze instaluj w środowisku wirtualnym
Każdy prawdziwy projekt w Pythonie powinien mieć środowisko wirtualne. To lokalny folder projektu z własnym python i własnymi zainstalowanymi pakietami, więc pip install w jednym projekcie nie wpływa na żaden inny.
Konfiguracja w dwóch liniach:
python -m venv .venv
source .venv/bin/activate # macOS / Linux
# albo .venv\Scripts\activate w Windows
Po aktywacji python -m pip install requests instaluje pakiet do venv. Twój systemowy Python pozostaje czysty. Opisujemy to dokładniej na stronie o środowiskach wirtualnych.
Jeśli kiedyś uruchomisz pip install i zobaczysz ostrzeżenie o instalacji do systemowego Pythona (albo komunikat, żeby przekazać --break-system-packages), zatrzymaj się. To sygnał, żeby zamiast tego utworzyć venv.
Gdy pip nie może zainstalować pakietu
Kilka typowych błędów i ich znaczenie:
Could not find a version that satisfies the requirement …: zwykle literówka w nazwie pakietu albo pakiet wymaga nowszego Pythona niż twój.error: Microsoft Visual C++ 14.0 or greater is required(Windows): pakiet ma natywne rozszerzenie i potrzebuje narzędzi do kompilacji C++. Zainstaluj Build Tools od Microsoftu albo poszukaj gotowego pakietu wheel (większość popularnych pakietów je udostępnia).Permission denied: próbujesz instalować do systemowego Pythona bez uprawnień roota. Właściwą naprawą nie jestsudo pip install, tylko środowisko wirtualne.ModuleNotFoundErrorpo instalacji: prawie zawszepip installumieścił pakiet w innym Pythonie niż ten, który uruchamia twój skrypt. Sprawdźwhich pythoniwhich pip(macOS/Linux) albowhere python/where pip(Windows). Albo, pewniej, używajpython -m pip install ....
Nowoczesne alternatywy dla pip
Kilka narzędzi, o których usłyszysz. Wszystkie są zgodne z pip i rozwiązują konkretne problemy:
uv: znacznie szybszy instalator i resolver zależności. Zastępuje większość poleceń pip bez zmian w sposobie pracy.pipx: instaluje narzędzia wiersza poleceń (takie jakblack,ruff,httpie) w odizolowanych venv, dzięki czemu są dostępne globalnie i nie kolidują z zależnościami projektów.poetryihatch: menedżery projektów, które łączą obsługę środowisk wirtualnych, rozwiązywanie zależności i budowanie pakietów w jednym narzędziu.
Pierwszego dnia nie potrzebujesz żadnego z nich. Najpierw naucz się pip; po pozostałe sięgnij, gdy problem, który rozwiązują, stanie się twoim problemem.
Dalej: środowiska wirtualne
Pakiety i środowiska wirtualne idą w parze. Wiesz już dlaczego; następna strona szczegółowo omawia venv: tworzenie, aktywowanie, dezaktywowanie i drobne konwencje, które utrzymują porządek w projektach Pythona.
Najczęściej zadawane pytania
Czym jest pip w Pythonie?
pip to instalator pakietów Pythona, czyli narzędzie, które pobiera i instaluje zewnętrzne biblioteki z Python Package Index (PyPI). pip install requests pobiera bibliotekę requests i umieszcza ją tam, skąd twój interpreter Pythona może ją zaimportować. Jest dołączany do każdej nowszej instalacji Pythona 3.
Jak zainstalować pip?
pip przychodzi razem z Pythonem. Jeśli pip --version zgłasza brak polecenia, uruchom python -m ensurepip --upgrade albo python -m pip install --upgrade pip. Na macOS i Linuksie użyj pip3, jeśli nie da się znaleźć samego pip: wskazuje on instalację Pythona 3.
Jak zaktualizować pip?
Uruchom python -m pip install --upgrade pip. Użycie python -m pip zamiast samego pip gwarantuje, że aktualizacja trafi do interpretera Pythona, którego faktycznie używasz. To mały, ale ważny szczegół, gdy masz zainstalowanych kilka wersji Pythona.
Instalować pakiety globalnie czy w środowisku wirtualnym?
W środowisku wirtualnym, zawsze, dla każdego projektu większego niż jednorazowy skrypt. Instalacje globalne powodują konflikty wersji między projektami i zaśmiecają systemowego Pythona. Krótka odpowiedź to wbudowany moduł venv, który opisujemy na stronie o środowiskach wirtualnych.