Przejdź do treści
Strona główna » Blog » Kurs Python: moduły i pakiety

Kurs Python: moduły i pakiety

Czym jest moduł?

W programowaniu moduł to fragment oprogramowania, który ma określoną funkcjonalność. Przykładowo, budując grę w sapera, jeden moduł może odpowiadać za algorytmy opisujące działanie gry, a inny moduł za wyświetlanie grafiki na ekranie. Najprościej ujmując, moduł to plik, w którym zawarto zestaw funkcji, klas i zmiennych służących do realizacji pewnego celu.

Czym jest pakiet?

Pakiet to katalog zawierający wiele modułów. Z reguły są one tematycznie powiązane, co ułatwia organizację kodu i projektu.

Instalacja pakietów w Pythonie

Pakiety w Pythonie możemy zainstalować przy użyciu linii poleceń (w systemie Windows — CMD) i komendy pip install nazwa_pakietu. Polecenie to pobiera dany pakiet z serwera PyPI (Python Package Index) i instaluje na dysku lokalnym. Warto wspomnieć, że często stosuje się zamiennie pojęcia pakiet biblioteka, choć biblioteka jest pojęciem bardziej ogólnym, oznaczającym zbór modułów lub pakietów zapewniających szeroki zakres funkcjonalności.

Przykładowo, instalacja popularnej biblioteki do tworzenia wykresów matplotlib będzie wyglądać następująco:

pip install matplotlib

Odinstalowanie pakietów w Pythonie

Odinstalowanie pakietu dokonujemy również przy użyciu polecenia pip:

pip uninstall matplotlib

Sprawdzanie, czy pakiet jest zainstalowany

Aby sprawdzić, czy pakiet jest zainstalowany, używamy w terminalu polecenia pip show nazwa pakietu:

pip show matplotlib

W efekcie dostajemy informacje na temat zainstalowanego pakietu

Name: matplotlib
Version: 3.8.3
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: [email protected]
License: PSF
Location: C:\Users\Szymon\AppData\Local\Programs\Python\Python311\Lib\site-packages
Requires: contourpy, cycler, fonttools, kiwisolver, numpy, packaging, pillow, pyparsing, python-dateutil
Required-by: seaborn

lub informacji o jego braku:

WARNING: Package(s) not found: matplotlib

Popularne pakiety w Pythonie

Lista dostępnych pakietów i bibliotek jest bardzo długa. Repozytorium PyPI zawiera ich ponad pół miliona. Duża jest również ich różnorodność i można pośród nich znaleźć wiele służących do rozwiązywania problemów z obszaru wielu zainteresowań. Spośród najczęściej pobieranych bibliotek [1] znajdziemy między innymi:

  • requests — biblioteka służąca do wykonywania zapytań HTTP,
  • numpy — biblioteka służąca do wykonywania szybkich operacji na tablicach,
  • boto3 — biblioteka do pracy z usługami Amazon Web Services (AWS),
  • python-dateutil — moduł do manipulacji datami i czasem.

Oprócz wyżej wymienionych warto też wspomnieć o pakietach związanych z bardziej szczegółowymi zagadnieniami:

  • pandas — pakiet przeznaczony do manipulacji danymi i analizy danych.
  • tkinter — biblioteka umożliwiająca tworzenie interfejsów graficznych.
  • pygame — biblioteka przeznaczona do tworzenia gier komputerowych.

Moduły w bibliotece standardowej Pythona

Biblioteka standardowa języka Python zawiera ponad 200 podstawowych modułów [2]. Zawiera między innymi takie moduły jak:

  • os — zawiera funkcje do interakcji z systemem operacyjnym, takie jak np. manipulacje plikami.
  • datetime — udostępnia funkcje do manipulacji datami i czasem.
  • re — umożliwia operacje związane z wyrażeniami regularnymi.
  • math — zawiera funkcje matematyczne, takie jak sin, cos, exp, itd.

Pełna dokumentacja biblioteki standardowej Pythona znajduje się pod adresem [3].

Importowanie modułów

Korzystanie z wybranego modułu odbywa się po uprzednim zaimportowaniu go. Możemy to zrobić na kilka sposobów. Najprostsza instrukcja to import nazwa_modulu.

Python
import datetime

Wygodny jest zapis import nazwa_modulu as skrot, dzięki któremu możemy wywołać funkcje z tego modułu z użyciem skróconej formy, np.:

Python
import numpy as np

# Tworzenie tablicy o długości 5 wypełnionej zerami
zeros_array = np.zeros(5)

# zamiast zeros_array = numpy.zeros(5)

Jeśli nie potrzebujemy korzystać z całego modułu, a jedynie z wybranych jego funkcji to możemy użyć zapisu from modul import funkcja1, funkcja2, np.:

Python
from numpy import zeros
zeros_array = zeros(5)

Możemy zaimportować kilka modułów w jednej linii:

Python
import datetime, numpy

Tworzenie własnych modułów

Moduł tworzymy jako plik .py, w którym definiujemy funkcje, klasy i zmienne. Weźmy dla przykładu zagadnienie związane z analizą danych. Możemy utworzyć moduł analiza_danych.py, który będzie zawierał niezbędne funkcje. Przykładowy moduł mógłby wyglądać następująco:

Python
# analiza_danych.py
def oblicz_srednia(data):
  ...
  return srednia
  
def wczytaj_dane(sciezka):
  ...
  return data

def wyczysc_dane(data):
  ...
  return clean_data

W powyższym szkicu uwzględnionych mamy kilka funkcji, które realizują takie zadania jak wczytanie danych, wyczyszczenie danych i obliczenie średniej. Utworzony moduł możemy następnie wykorzystać w innych plikach, po wcześniejszym zaimportowaniu go. Możemy zaimportować cały moduł korzystając z instrukcji import modul, bądź tylko wybrane funkcje from modul import funkcja1, funkcja2.

Python
from analiza_danych import oblicz_srednia, wczytaj_dane, wyczysc_dane

# Przykładowe dane
sciezka_do_pliku = 'dane.txt'

# Wczytanie danych
dane = wczytaj_dane(sciezka_do_pliku)
print("Wczytane dane:", dane)

# Wyczyszczenie danych
oczyszczone_dane = wyczysc_dane(dane)
print("Oczyszczone dane:", oczyszczone_dane)

# Obliczenie średniej
srednia = oblicz_srednia(oczyszczone_dane)
print("Średnia wartość:", srednia)

Odnośniki

[1] https://pypistats.org/top

[2] https://www.geeksforgeeks.org/libraries-in-python/

[3] https://docs.python.org/3/library/index.html