Według analizy przeprowadzonej przez Stackoverflow w roku 2023, język Python plasuje się na trzeciej pozycji wśród najczęściej wykorzystywanych języków programowania. Jego wszechstronność sprawia, że znajduje zastosowanie w obszarach takich jak analiza danych, tworzenie aplikacji internetowych, uczenie maszynowe, inżynieria oprogramowania oraz obliczenia naukowe.
Podczas nauki i pracy z Pythonem, jednym z kluczowych pojęć, z którymi się spotkasz, są pakiety. Czym dokładnie są pakiety w Pythonie i w jaki sposób można je tworzyć?
W tym artykule omówimy następujące zagadnienia:
- Zdefiniujemy, czym są pakiety Pythona.
- Wyjaśnimy, dlaczego pakiety Pythona są istotne w procesie programowania.
- Zaprezentujemy proces tworzenia pakietów w Pythonie.
- Pokażemy, jak korzystać z pakietów Pythona oraz jak je testować.
- Przedstawimy sposób przesyłania pakietów Pythona do repozytoriów online.
Czym są pakiety Pythona?
Pakiety Pythona stanowią fundament w procesie programowania. Bez nich programiści byliby zmuszeni do pisania każdego elementu kodu od podstaw, co znacznie wydłużyłoby i skomplikowało proces tworzenia oprogramowania. Pakiety Pythona to nic innego jak zbiory modułów, czyli fragmentów kodu wielokrotnego użytku.
Moduł w Pythonie to pojedynczy plik zawierający kod, który może być importowany do innych programów napisanych w tym języku. Aby stworzyć pakiet, należy umieścić kod w katalogu, który zawiera specjalny plik o nazwie __init__.py.
Pakiety Pythona mogą zawierać inne pakiety (zagnieżdżanie), a w sieci dostępne są tysiące różnorodnych pakietów. Część z nich jest oficjalnie wspierana, inne natomiast są tworzone przez niezależnych programistów. Większość pakietów Pythona można znaleźć na stronie https://pypi.org/.
Jako przykład pakietu można podać Django, czyli framework internetowy oparty na Pythonie, używany do tworzenia aplikacji webowych. Scikit-learn, PyTorch i TensorFlow to popularne pakiety wykorzystywane w dziedzinie uczenia maszynowego.
Znaczenie pakietów Pythona
Dlaczego programiści nie powinni tworzyć wszystkiego samodzielnie od podstaw? Czy pakiety Pythona są naprawdę niezbędne? Oto kilka powodów, dla których pakiety w Pythonie są tak ważne:
- Oszczędność czasu: Pakiety dają dostęp do gotowych rozwiązań typowych problemów. Zamiast „odkrywać koło na nowo”, możesz wykorzystać istniejące pakiety.
- Ułatwienie dystrybucji kodu: Współpraca w programowaniu jest powszechna. Tworząc pakiet, możesz udostępnić go swojemu zespołowi, który będzie mógł go łatwo zaimportować do swojego projektu.
- Możliwość ponownego wykorzystania kodu: Jeżeli potrzebujesz często używać określonego bloku kodu, możesz go umieścić w pakiecie i importować go do różnych aplikacji.
- Organizacja kodu: Pakiety pomagają w uporządkowaniu kodu, dzieląc go na logiczne moduły. Ułatwia to czytanie i utrzymywanie kodu.
Jak stworzyć swój pierwszy pakiet Pythona
Jak wspomniano wcześniej, Python jest językiem uniwersalnym. Jako programista możesz tworzyć różne typy pakietów.
Możesz na przykład stworzyć pakiet do automatyzacji zadań, pakiet do zarządzania budżetem, a nawet pakiet do nauki nowego języka. Zanim jednak przystąpisz do tworzenia swojego pierwszego pakietu, upewnij się, że spełniasz poniższe wymagania:
Wymagania wstępne:
- Zainstalowany Python: Upewnij się, że masz zainstalowanego Pythona na swoim komputerze. W systemach Linux Python jest zazwyczaj instalowany domyślnie. Możesz sprawdzić wersję Pythona za pomocą poleceń:
python --version
lubpython3 --version
. Jeśli Python jest zainstalowany, zobaczysz numer wersji w terminalu.
Jeśli nie masz zainstalowanego Pythona, możesz go pobrać ze strony: https://www.python.org/downloads/.
- Znajomość Pythona: Powinieneś rozumieć, jak tworzyć klasy, moduły i funkcje w Pythonie.
- Menedżer pakietów: W tym przykładzie użyjemy pip. Możesz sprawdzić, czy pip jest zainstalowany, używając polecenia:
pip --version
Jeśli pip jest zainstalowany, zobaczysz numer wersji w terminalu.
Wymagania mogą się różnić w zależności od rodzaju tworzonego pakietu.
W tym przykładzie stworzymy prosty pakiet Pythona, który będzie sprawdzał, czy dana liczba jest liczbą pierwszą. Postępuj zgodnie z instrukcjami:
- Krok 1: Utwórz folder projektu. Nazwij go na przykład „primechecker”.
- Krok 2: Wewnątrz folderu „primechecker” utwórz kolejny folder i nazwij go „prime”.
- Krok 3: W folderze „prime” utwórz plik o nazwie „prime.py”. Możesz połączyć te trzy kroki za pomocą polecenia:
mkdir primechecker && cd primechecker && mkdir prime && cd prime && touch prime.py
- Krok 4: Otwórz projekt w edytorze kodu. W pliku „prime.py” dodaj kod, który sprawdza, czy dana liczba jest liczbą pierwszą:
def is_prime(number): if number < 2: return False for i in range(2, int(number ** 0.5) + 1): if number % i == 0: return False return True
- Krok 5: W głównym folderze (primechecker) utwórz plik o nazwie „__init__.py”. Ten plik sprawia, że Python rozpoznaje folder projektu jako pakiet.
Możesz użyć tego polecenia:
touch prime/__init__.py
- Krok 6: Przetestuj kod. Utwórz plik „test.py” w głównym folderze, który będzie sprawdzał, czy dana liczba jest liczbą pierwszą. Wróć do głównego folderu i użyj polecenia:
touch test.py
Następnie dodaj do niego następujący kod:
from prime.prime import is_prime number = int(input("Enter a number: ")) result = is_prime(number) print(f"{number} is prime: {result}")
Uruchom kod za pomocą:
python3 test.py
Teraz możesz wprowadzić liczbę i sprawdzić, czy jest liczbą pierwszą.
Na przykład, po wprowadzeniu 5 i 1 otrzymasz następujący wynik:
Jak przesłać pakiet online
Możesz umieścić swój pakiet w repozytorium PyPI (Python Package Index), które jest centralnym miejscem przechowywania tysięcy pakietów Pythona. Wejdź na stronę https://pypi.org/ i utwórz konto, jeśli jeszcze go nie masz.
Aby przesłać swój pakiet, wykonaj następujące kroki:
- Krok 1: W głównym folderze (u mnie „primechecker”) utwórz plik o nazwie „setup.py”.
- Krok 2: W pliku „setup.py” umieść informacje o pakiecie, który chcesz przesłać.
Kod tego pliku powinien wyglądać tak:
from setuptools import setup, find_packages setup( name="primechecker", version='1.0.0', author="Your Name", author_email="[email protected]", description='A package for checking prime numbers', packages=find_packages(), )
Zmień odpowiednio nazwę, autora, adres email i opis.
- Krok 3: Zbuduj pakiet. Będąc w głównym folderze uruchom polecenie:
python3 setup.py sdist bdist_wheel
Po wykonaniu tego polecenia w folderze projektu pojawią się dwa nowe foldery: „build” i „dist”.
- Krok 4: Zainstaluj narzędzie „twine”. Jest ono niezbędne do przesyłania pakietów do PyPI.
Użyj polecenia:
pip install twine
- Krok 5: Prześlij pakiet.
Użyj polecenia:
twine upload dist/*
Zostaniesz poproszony o podanie nazwy użytkownika i hasła do PyPI. Jeżeli nazwa twojego pakietu nie jest zajęta, zostanie on opublikowany online i otrzymasz link na terminalu.
Twój pakiet będzie teraz publicznie dostępny. Każdy użytkownik może go pobrać za pomocą menedżera pakietów pip.
Na przykład mój pakiet można pobrać za pomocą polecenia:
pip install primechecker==1.0.0
Najlepsze praktyki tworzenia pakietów Pythona
- Przestrzegaj standardów pakietów Pythona: Nawet jeśli masz swobodę w tworzeniu pakietu, pamiętaj, że istnieją standardy, których należy przestrzegać. Sprawdź te standardy na stronie https://packaging.python.org/ przed rozpoczęciem kodowania.
- Przetestuj pakiet przed wdrożeniem: Błędy są powszechne w programowaniu. Twórz automatyczne testy, zwłaszcza przy rozbudowanych pakietach. Zapewni to, że przesyłasz pakiet bez błędów.
- Wersjonowanie: Każdy pakiet powinien korzystać z semantycznego wersjonowania. W naszym przykładzie wersja to 1.0.0, gdzie pierwsza cyfra oznacza wersję główną, druga cyfra to wersja drugorzędna, a trzecia to patch.
- Określ zależności: W zależności od potrzeb, twój pakiet może mieć zależności od innych pakietów. Upewnij się, że wspomnisz o tych zależnościach podczas przesyłania. Możesz użyć narzędzi takich jak setuptools lub poetry do zarządzania zależnościami.
- Użyj kontroli wersji: Programowanie jest procesem ciągłym. Pakiet może być aktualizowany o nowe funkcje lub ulepszenia. Możesz również zaprosić współpracowników. Umieść swój kod na platformach takich jak GitHub lub GitLab, aby umożliwić współpracę.
- Udokumentuj kod: Nasz pakiet był prosty i służył tylko do celów demonstracyjnych. Jeśli jednak zamierzasz udostępnić swój pakiet publicznie lub zespołowi, utwórz dokumentację, która poprowadzi użytkowników. Możesz użyć do tego narzędzi takich jak Pydoc lub Sphinx.
Gdzie jeszcze można umieszczać pakiety Pythona?
Mimo że PyPI (Python Package Index) jest oficjalnym repozytorium, nie jesteś ograniczony tylko do niego. Wybierając miejsce publikacji, warto wziąć pod uwagę takie czynniki jak rozmiar plików, charakter pakietu, wymagany poziom wsparcia i grupa docelowa.
Oto inne miejsca, gdzie możesz przesłać swoje pakiety:
- GitHub: GitHub jest popularną platformą hostingową dla kodu. Możesz utworzyć repozytorium i dodać swój pakiet jako archiwum ZIP.
- Conda: Conda to menedżer pakietów, który jest często używany w analizie danych. Utwórz konto na Conda i przesyłaj swoje pakiety.
- PyPI Mirrors: Istnieje wiele serwerów lustrzanych PyPI, które replikują jego zawartość. Wybierz taki, który odpowiada Twoim potrzebom.
Wniosek
Teraz znasz kroki potrzebne do tworzenia pakietów Pythona i publikowania ich online. Nasz przykład był prosty, ale zachęcamy do eksperymentowania z bardziej zaawansowanymi pakietami. Pamiętaj, aby zawsze tworzyć odpowiednią strukturę folderów podczas pracy z pakietami.