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:

Zrzut ekranu z IDLE w trybie interaktywnym. Widać, napisany czerwonymi literami, komunikat 'Brak modułu PIL. Żeby skrypt działał, zainstaluj go, wpisując w PowerShell pip install pillow'.

Na szczęście można bardzo szybko i łatwo instalować moduły zewnętrzne. Python ma od tego programik PIP.

Ciekawostka

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.

Metalowa tabliczka z gry Fallout, stylizowana na dawne amerykańskie plakaty reklamowe. Widać na niej napis Pip-Boy 2000 i uśmiechniętego, rysunkowego mężczyznę unoszącego kciuk do góry.

Źródło: nexusmods.com.

Ż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.

Zrzut ekranu pokazujący lewy górny róg programu Eksplorator Windows, z klikniętą zakładką 'Plik'. Czerwoną obwódką otoczono drugą z wymienionych opcji, '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:

pip install pillow

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ł:

Zrzut ekranu z Powershella. U góry widać wpisaną komendę 'pip install pillow', poniżej biały pasek postępu wypełniony w całości, a na samym dole linijkę tekstu 'Successfully installed pillow'.

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

Zrzut ekranu z IDLE. Widać komunikaty, napisane niebieskimi literami i mówiące 'Sprawdzam obrazki' oraz że obrazek nie zawiera metadanych.

I zrobione! Może i metadanych tu nie ma, ale skrypt działa jak powinien.

Porada

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.

Zrzut ekranu z PowerShella, pokazujący długi komunikat o błędzie w połączeniu i mówiący, że nie znaleziono odpowiedniej wersji modułu pillow

Dla użytkowników Linuksa

Przede wszystkim piąteczka!

W przypadku Linuksa zasadniczy mechanizm jest ten sam – instalacja przez pip – ale warto wiedzieć o paru rzeczach. Sam nie wiedziałem i straciłem przez to trochę czasu i nerwów, więc może chociaż Wam tego oszczędzę.

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. Dlatego musicie dodać 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). 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.