Python – pobieranie dodatkowych modułów
Ten wpis to rozwinięcie podstawowego samouczka o używaniu skryptów w języku Python.
Staram się, żeby moje skrypty były niezależne i mieściły się w jednym pliku. Ale czasami to niemożliwe. Niektóre zadania wymagają pomocy modułów zewnętrznych.
Tak jest w przypadku skryptów, które dołączyłem np. do wpisu o metadanych w obrazkach.
Do otwierania obrazków potrzeba modułu zewnętrznego PIL (Python Imaging Library). Jeśli otworzycie mój skrypt w IDLE i naciśniecie F5, żeby go odpalić – a nie macie PIL-a – to wyświetli się komunikat:

Na szczęście można bardzo szybko i łatwo instalować moduły zewnętrzne. Python ma od tego programik PIP.
Rozwinięcie akronimu PIP to… PIP Installs Packages. To tak zwany akronim rekurencyjny, lubiany w kręgach programistów. Można by go rozwijać w nieskończoność, bo rozwinięcie znów zawiera pełen akronim.
Dzięki PIP-owi uniwersum Pythona stoi otworem. Możemy ściągać z internetu wszelkie dodatkowe narzędzia, jakich tylko potrzebujemy.

Źródło: nexusmods.com.
Spis treści
PIP na Windowsie
Żeby użyć PIP-a, trzeba skorzystać z PowerShella, domyślnej konsoli Windowsa
(konsola to takie okienko, w którym wpisujemy różne polecenia, a komputer je od razu wykonuje).
Otwieramy Eksplorator Windows. W lewym górnym rogu klikamy opcję Plik. Wybieramy Otwórz program Windows PowerShell.

Jeden z wielu sposobów na włączenie PowerShella.
Super, mamy okno konsoli! Teraz możemy w nie wpisywać dowolne rzeczy.
Chcemy pobrać pillow, więc w tym wypadku wpisujemy:
Możecie po prostu skopiować tę linijkę i wkleić do PowerShella, wciskając Ctrl+V.
Naciskamy Enter, żeby potwierdzić. Powinno nam pobrać i zainstalować moduł:

Gdybyśmy teraz odpalili przez IDLE skrypt wspomniany na początku:

I zrobione! Może i metadanych tu nie ma, ale skrypt działa jak powinien.
Instalowanie modułów Pythona wymaga łączności z internetem. Jeśli jej nie ma albo coś przerywa, to może wyskoczyć kilka ostrzeżeń i błąd jak z obrazka poniżej.
Wtedy sprawdzamy jakość swojego połączenia na innej dowolnej stronce i próbujemy znowu.
Jeśli to nie pomaga, to znaczy że coś się popsuło po stronie PyPI (stronki z modułami Pythona). Najlepiej się nie zrażać i po jakimś czasie spróbować ponownie.

Instalacja na Linuksie
Przede wszystkim piąteczka!
Linux to ciekawa sprawa. Z jednej strony pozwala oszczędzić sobie roboty, bo Python jest na nim domyślnie zainstalowany.
Ale, żeby nie było zbyt fajnie – to Python systemowy, który od pewnego czasu ma ograniczone możliwości instalowania zewnętrznych modułów. To zmiana na gorsze w porównaniu z tym, co było wcześniej. Dlatego ta część samouczka nieco się zdezaktualizowała i wymagała przepisania ![]()
Kwestia instalowania zewnętrznych modułów na Linuksie (przez PIP-a i nie tylko) jest teraz opisana w innym samouczku, zapraszam tam serdecznie!
Tutaj zostawię tylko parę uwag uzupełniających, pokazujących różnice między Linuksem a Windowsem pod względem korzystania z PIP-a.
Informacje uzupełniające na temat PIP-a
Zakładam, że odwiedziliście link znad tej zakładki i macie teraz którąś z następujących rzeczy:
- PIP-a w aktywnym środowisku wirtualnym,
- PIP-a zainstalowanego jako moduł systemowego Pythona (plus gotowość do użycia opcji
--break-system-packages).
Jeśli tak, to służę paroma informacjami uzupełniającymi.
Przede wszystkim warto wiedzieć, że czasem macie zainstalowane dwie wersje Pythona – starą wersję 2.7 oraz nowszą 3.coś. To tej drugiej chcecie używać.
Upewnijcie się, jak jest. Wpiszcie w konsoli pip --version i spójrzcie, jaką wersję Pythona wyświetla pod koniec.
Jeśli pod samym pip macie wersję drugą, to w celu użycia trzeciej musicie, tam gdzie inni wpisują samo pip, wpisywać pip3.
Druga sprawa: zapewne przy próbie instalacji będzie Wam wyskakiwał błąd Permission Denied. To normalne, Linux chroni część systemu przed zmianami. W razie błędu należy dopisać też opcję --user, żeby instalować dla konkretnego użytkownika.
Podsumowując: tam, gdzie na Windowsie byście po prostu wpisali:
pip install jakiś_pakiet
Na Linuksie zapewne musicie wpisać:
pip3 install --user jakiś_pakiet
Warto o tym pamiętać, czytając instrukcje z internetu.
Znaj swój moduł
Jak sami widzicie, pobieranie modułów zewnętrznych Pythona jest całkiem bezbolesne.
Natomiast nie byłbym sobą, gdybym nie wspomniał o ich ciemnej stronie. Moduły zewnętrzne nie podlegają żadnym rygorystycznym weryfikacjom, dlatego warto czasem osobiście je sprawdzić. Zwłaszcza jeśli poleca je Wam jakaś nieznana strona.
Zawsze kiedy polecam jakiś moduł zewnętrzny, dorzucam też linki do jego źródła. Dzięki temu można osobiście sprawdzić, na ile dany moduł jest popularny i kto za nim stoi.
Nie daje to oczywiście 100% gwarancji bezpieczeństwa (nawet do najbardziej zaufanego modułu ktoś mógł „dorzucić” szemrany kod – przykładem afera XZ). Ale nawet taka lekka kontrola jest lepsza niż ślepe zgadzanie się na wszystko – co przecież często robimy, instalując różne byznesowe programy od korpo.