Menu

pip w Pythonie: instalowanie pakietów, wersje i PyPI

Jak instalować, aktualizować i usuwać pakiety Pythona przez pip: PyPI, pliki requirements i unikanie pułapki instalacji globalnej.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

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 jest sudo pip install, tylko środowisko wirtualne.
  • ModuleNotFoundError po instalacji: prawie zawsze pip install umieścił pakiet w innym Pythonie niż ten, który uruchamia twój skrypt. Sprawdź which python i which pip (macOS/Linux) albo where python / where pip (Windows). Albo, pewniej, używaj python -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 jak black, ruff, httpie) w odizolowanych venv, dzięki czemu są dostępne globalnie i nie kolidują z zależnościami projektów.
  • poetry i hatch: 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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ