Python – pobieranie dodatkowych modułów
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.
Ż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
.
Super, mamy okno konsoli! Teraz możemy w nie wpisywać dowolne rzeczy.
Chcemy pobrać pillow
, więc w tym wypadku wpisujemy:
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.
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.