Cześć! To jest fragment książki Python od podstaw, która ma pomóc w nauce programowania od zera. Znajdziesz ją na Allegro, w Empikach i w księgarniach internetowych.
Python był tworzony irozwijany przez pasjonatów, zafascynowanych tym językiem ichcących działać na jego rzecz. Z czasem powstała cała społeczność ludzi, nazywana Python community. Poza językiem stworzyli oni szereg narzędzi, wtym takie dołatwej wymiany pakietami.
PyPI
Tak też powstała centralna baza pakietów PyPI1 (Python Package Index). Możesz sobie wyobrazić, że jest to wielki dysk, na który twórcy przesyłają pakiety, aużytkownicy je z niego pobierają. Gdy potrzebujesz znaleźć jakiś pakiet, wszystkie są widoczne iopisane na stronie pypi.org.
PyPI ma swoją wyszukiwarkę oraz ogromną liczbę opcji filtrowania wyników. Osobiście jednak rzadko z niej korzystam. Wiele wyników dotyczy mało popularnych pakietów. Znacznie częściej odnajduję sugerowane pakiety na StackOverflow, blogach czy forach, ana PyPI sprawdzam ich użycie idokumentację (opis działania).
Strona centralnego repozytorium pakietów pypi.org.
Opis pakietu fastly wwersji 0.5.1.
Pip
Jak już wspominałem o pobieraniu pakietu, to służy dotego kolejne narzędzie o nazwie pip3. Jest to system dozarządzania pakietami, czyli program, który umożliwia pobieranie, usuwanie czy zmianę wersji pakietów. Wystarczy go poinstruować, co ma pobrać, aon sam się już tym zajmie.
Pip jest domyślnie instalowany razem z językiem Python. Może się jednak zdarzyć, że na komputerze jest zainstalowany Python, apip nie. Zacznijmy więc od sprawdzenia, czy u Ciebie pip jest już zainstalowany. Otwórz wiersz poleceń4 (Terminal wprzypadku MacOS lub Linux), poczym wpisz "pip --version". Jeśli program jest u Ciebie zainstalowany, to wyświetli się wersja programu. Jeśli nie, to zobaczysz błąd wynikający z odniesienia się doprogramu, który nie istnieje.
Aby zainstalować pip, wejdź na stronę https://bootstrap.pypa.io/get-pip.py ipobierz ten plik (kliknij prawym przyciskiem myszy iwybierz "Zapisz jako") wmiejscu, gdzie otwarty jest wiersz poleceń5. Będzie się on nazywał "get-pip.py".
Następnie uruchom ten plik przy użyciu Pythona, czyli wywołaj "python get-pip.py". Po tym wyłącz iwłącz wiersz poleceń, poczym ponowie wpisz "pip --version". Jeśli wciąż komenda ta nie podaje poprawnie wersji, wpisz "pip3 --version". Dodatkowa trójka oznacza, że pip został zainstalowany dla Pythona wwersji trzeciej. W takim wypadku, przy następnych krokach instalacji pakietów używaj "pip3" zamiast "pip".
Jeśli podrodze coś poszło nie tak, powtórz wszystkie kroki instalacji języka z rozdziału Pierwszy program, anastępnie instalacji pip6.
Instalacja pakietów z pip
Aby zainstalować pakiet przy użyciu pip, wywołaj wWierszu poleceń (albo Terminalu) komendę "pip install {nazwa pakietu}" (lub "pip3 install {nazwa pakietu}"). Nazwę pakietu wpisujemy małymi literami.
Zauważ, że komenda dozainstalowania pakietu jest wyszczególniona na stronie PyPI. Poniżej zaznaczona jest metoda dozainstalowania pakietu "fastly".
Instalacja pakietów w PyCharm
Jeśli korzystamy z PyCharm, zarządzanie pakietami jest znacznie łatwiejsze. Wystarczy otworzyć ustawienia (File > Preferences), poczym wybrać zakładkę "Project {nazwa projektu} > Python Interpreter".
Dla używanego wprojekcie interpretera Python (możemy mieć na komputerze zainstalowanych kilka), zobaczymy listę zainstalowanych pakietów wraz z ich wersjami. Tą listą możemy łatwo zarządzać przy użyciu plusa iminusa. Minusem usuwamy dany pakiet. Plusem możemy zainstalować nowy. Po jego użyciu wyświetla się wyszukiwarka pakietów. Po znalezieniu pakietu instalujemy go przyciskiem Install Package.
W PyCharm jest jeszcze jedna sztuczka, której często używam. Załóżmy, że poszukujesz winternecie kodu, dowykonania danej operacji. Odnajdujesz go ikopiujesz dopliku Python wPyCharm. Jeśli wkodzie tym wykorzystywany jest pakiet, którego nie masz zainstalowanego, to przy jego importowaniu zaznaczony zostanie błąd. Jeśli ustawisz tam kursor, poczym wciśniesz Alt+Enter (command+Enter na MacOS)7, to zobaczysz sugestię zainstalowania tego pakietu. Zaakceptuj ją poprzez Enter, aPyCharm już zajmie się resztą.
Wersjonowanie
Wielokrotnie wspominałem już o wersjach. Czy to wersjach Pythona, pip, czy pakietów. Po co te wersje? Dobrą metaforą jest tutaj książka. Pierwsze wydanie to pierwsza wersja. Po jakimś czasie autor postanawia wprowadzić jakieś zmiany ipowstaje wersja druga. Potem trzecia, czwarta itp. Podobnie jest z oprogramowaniem, ale ponieważ znacznie łatwiej jest dostarczać zmiany dooprogramowania niż doksiążki, wersji jest zazwyczaj znacznie więcej.
Wersja wprogramowaniu jest najczęściej opisywana wsystemie nazywanym Semantic versioning. Zawiera on trzy części oddzielone kropkami: Major, Minor iPatch. Domyślnie pierwsza wersja gotowa doużytku to "1.0.0", apierwsza stworzona na potrzeby demonstracyjne to "0.0.1". Gdy wydajemy nową wersję, zwiększamy jeden z członów zgodnie z następującym kluczem:
- Major — zwiększamy, gdy nastąpiły bardzo istotne zmiany, które sprawiają, że kod napisany dla poprzedniej wersji z dużym prawdopodobieństwem nie zadziała. Przy zwiększeniu, zerujemy części Minor iPatch.
- Minor — zwiększamy, gdy nastąpiły zmiany, które sprawiają, że kod napisany dla poprzedniej wersji zadziała wnieco inny sposób niż poprzednio. Możemy też oznaczyć pewne elementy jako depricated (czyli, że nie należy ich używać) lub usunąć elementy będące depricated (co również sprawia, że część programów korzystających z poprzednich wersji może nie zadziałać). Przy zwiększeniu, zerujemy część Patch.
- Patch — zwiększamy, gdy dokonujemy nieznacznych zmian, które nie powinny wpłynąć na używanie naszego pakietu.
Przykład wersji zapisanej wsystemie Semantic versioning, z podpisanymi członami MAJOR, Minor ipatch.
Wersjonowanie jest bardzo ważne. Wyobraź sobie, że stworzyłeś/stworzyłaś program, który działa dla pakietu wwersji "1.2.3". Działa on doskonale, ale wtedy wychodzi wersja "2.0.0" tego pakietu. Niestety udostępniane przez niego funkcje są zupełnie inne, przez co Twój kod przestanie działać. Możesz oczywiście dostosować swój kod, ale to wymaga dodatkowej pracy. Chcesz to zrobić wswoim czasie, anie wtedy, gdy wychodzi nowa wersja pakietu. Dlatego właśnie PyPI przechowuje nie tylko ostatnią wersję pakietu, ale także wszystkie poprzednie. My zaś możemy wybrać jaką wersję pakietu chcemy pobrać. Przy pobieraniu przez pip, określamy ją popodwójnym znaku równości, np. "pip install {nazwa pakietu}=={wersja}"
(lub "pip3 install {nazwa pakietu}=={wersja}"
).
Kiedy naprawdę duże projekty są napisane pod konkretną wersję pakietu, dostosowanie się donowej wersji może być tak kosztowne, że nie chcą się na to zdecydować. Do takiej sytuacji doszło wwielu miejscach z samą wersją języka Python. Kiedy została wprowadzona wersja trzecia, wiele programów zdecydowało się pozostać przy wersji drugiej. Powstał wewnętrzny rozłam, który jest bardzo problematyczny dla całego środowiska. Kod prezentowany na forach czy kursach działać będzie zazwyczaj tylko wjednej z tych wersji. Podobnie pakiety są dostosowane dojednej lub drugiej. Wersja trzecia właściwie stała się już standardem, ale wygląda na to, że szybko nie zapomnimy jeszcze o wersji drugiej.
Zakończenie
Kiedy potrafimy już instalować pakiety ikorzystać z języka Python, to świat programowania stoi przed nami otworem. Mnogość pakietów pozwala na wykonywanie skomplikowanych operacji wzaledwie kilku liniach kodu. O tym jednak lepiej przekonasz się wrozdziale czwartym.
Wiele programów ipakietów określa, które ich litery powinny być wielkie, aktóre małe. Staram się to zawsze respektować. Dlatego piszę PyPI, anie Pypi. Także pip pisany jest z małych liter, mimo iż jest nazwą własną, chyba że powinien być pisany wielką literą z innego powodu.
Nazwa pip to skrót od "Pip Installs Packages". Zauważyłeś, że rozwinięcie skrótu zawiera skrót sam w sobie? Jest to więc tzw. skrót rekurencyjny. Sporo takich skrótów funkcjonuje w świecie programowania. Uważamy je za zabawne, a że Python był rozwijany przez pasjonatów, którym nikt za to nie płacił, w różnych miejscach można znaleźć przeróżne smaczki. Aby znaleźć kolejny ze smaczków, wpisz "import this" w Python REPL.
Opisałem jak to zrobić wrozdziale Pierwszy program.
Zamiast tego, możemy oczywiście przejść wwierszu poleceń wmiejsce, gdzie zapisaliśmy plik. Jest on nieco jak Menedżer plików, czyli program, który uruchamia się, gdy otworzysz "Mój komputer". Jest on otwarty w konkretnym miejscu i tam możesz otwierać pliki lub zmieniać ich nazwy itp. W Menadżerze plików sprawdzamy, jakie są pliki i foldery w miejscu, w którym się znajdujemy, poprzez komendę "dir" (w Terminalu poprzez "ls"). Przechodzimy do folderu poprzez "cd {nazwa folderu}". Aby się cofnąć do folderu, w którym znajduje się aktualny folder, używamy "cd ..". Po wpisaniu "cd" i naciśnięciu Tab zobaczysz listę podpowiedzi. Zacznij wpisywać nazwę i wciśnij Tab, a zobaczysz tylko foldery pasujące do tego, co już wpisane. Jak jest już tylko jedna możliwość, to zostanie ona automatycznie wpisana do końca. Tak przemieszczamy się po folderach w terminalu.
Niestety jest wiele rzeczy, które mogły pójść nie tak. Wyjaśnianie ich kolejno zajęłoby całą książkę i wymagałoby wejścia wwiele aspektów działania systemów operacyjnych. Na szczęście na każdy problem znajdziesz odpowiedzi winternecie. Jeśli jednak nie masz doświadczenia wtego typu operacjach, polecam poszukać pomocy u osoby, która je ma.
Ten skrót pokazuje sugestie kontekstowe. Śmiało używaj go przy wszelkich ostrzeżeniach (żółte podkreślenie) ibłędach (czerwone podkreślenie), gdyż często zawiera dobre sugestie automatycznego rozwiązania problemu.