Dowiedz się, jak tworzyć, rozpowszechniać i używać pakietów w Pythonie, korzystając z tego przewodnika.
Wyobraź sobie zniechęcające zadanie tworzenia kompleksowej aplikacji ograniczonej do jednego pliku Pythona. Chociaż technicznie wykonalne, jest to sprzeczne z podstawowymi zasadami tworzenia wydajnego, łatwego w utrzymaniu i wielokrotnego użytku oprogramowania. Z tych powodów pakiety i moduły są niezbędne do budowania i rozwijania oprogramowania.
Co to jest pakiet?
W Pythonie pakiet umożliwia zorganizowanie razem logicznie powiązanych modułów i zasobów. Jest to katalog zawierający wiele modułów Pythona, podpakietów i innych zasobów.
Pakiety zapewniają hierarchiczną strukturę, umożliwiającą organizowanie kodu projektu na różnych poziomach abstrakcji.
Różnica między pakietami a modułami
Chociaż możesz używać obu pakietów i moduły do organizowania kodu, istnieją między nimi różnice:
- Moduł: Moduł to plik zawierający kod Pythona. Definiuje funkcje, klasy, zmienne i inne obiekty, które można importować i używać w kodzie.
- Pakiet: Pakiet jest zbiorem jednego lub więcej modułów i może również zawierać podpakiety.
Jak utworzyć pakiet w Pythonie
Aby utworzyć pakiet, wykonaj następujące kroki.
Krok 1: Utwórz katalog projektu
Zacznij od utworzenia katalogu projektu.
study_bud/
Krok 2: Utwórz katalog pakietów
Wewnątrz katalogu projektu utwórz inny katalog, który będzie służył jako katalog pakietów. Nadaj mu zrozumiałą nazwę, która reprezentuje cel lub funkcjonalność pakietu. Katalog pakietów będzie zawierał moduły i podpakiety związane z twoim pakietem.
study_bud/
math_tool/
Krok 3: Zdefiniuj plik Package __init__.py
W katalogu pakietu utwórz __init__.py plik. Obecność __init__.py plik sprawia, że katalog jest pakietem w Pythonie.
Jeśli musisz zainicjować kod za każdym razem, gdy korzystasz z pakietu, dołącz go do __init__.py plik, w przeciwnym razie jest zawsze pusty.
study_bud/
math_tool/
__init__.py
Krok 4: Dodaj moduły do pakietu
W katalogu pakietu dodaj moduły języka Python (.py), które definiują funkcje, klasy lub zmienne.
Moduły te zawierają rzeczywisty kod, który zapewnia funkcjonalność Twojego pakietu. W katalogu pakietu można utworzyć wiele modułów.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
Krok 5: Dodaj podpakiety do pakietu
Jeśli Twój pakiet musi mieć strukturę hierarchiczną lub zawierać różne funkcje, możesz tworzyć podpakiety w katalogu pakietów.
Pakiet podrzędny to po prostu inny katalog pakietów w głównym katalogu pakietów. Każdy podpakiet powinien mieć swój __init__.py plik. Podpakiety pozwalają na dalszą organizację i separację kodu.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
W tych krokach utworzyłeś plik narzędzie_matematyczne pakiet, dodano dwa moduły (operacje.py I statystyki.py) oraz dwa podpakiety geometria I rachunek różniczkowy każdy ma swoje moduły.
Wykonując te kroki, możesz łatwo organizować powiązane funkcje za pomocą pakietu i podpakietów, co ułatwia zarządzanie kodem i jego ponowne wykorzystanie.
Jak pracować z pakietem w Pythonie
Aby pracować z pakietem, musisz go zaimportować. The import I z słowa kluczowe umożliwiają importowanie i używanie pakietu w kodzie.
import math_tool # entire package
Możesz także użyć notacji kropkowej do importowania modułów, pakietów podrzędnych lub określonych właściwości z pakietu. Notacja kropkowa umożliwia poruszanie się po strukturze katalogów pakietów. Notacja kropkowa sprawia, że importowane dane są bardziej czytelne i łatwiejsze w utrzymaniu.
from math_tool.operations import add, multiply # specific functions
W powyższym kodzie nawigowałeś z katalogu pakietu (narzędzie_matematyczne) do operacje używając notacji kropkowej i zaimportowałem dwie funkcje (dodać I zwielokrotniać).
Bezwzględny import vs. Import względny
Z absolutnyimport, określasz pełną ścieżkę z pakietu najwyższego poziomu (pakietu głównego) do żądanego modułu lub pakietu podrzędnego. Jest to najbardziej powszechny i zalecany sposób importowania modułów i pakietów w Pythonie.
from math_tool.geometry.shapes import parallelogram
Zaczynając od narzędzie_matematyczne wejdź do geometria podpakiet, znajdź kształty.py moduł i zaimportuj plik równoległobok funkcjonować.
Chwila względnyimport umożliwiają dokonywanie importów względem lokalizacji bieżącego modułu przy użyciu notacji kropkowej w celu określenia importów względnych.
Na przykład wewnątrz rachunek/integracje.py module, możesz użyć importu względnego, aby zaimportować funkcję z pliku kształty.py moduł w geometria podpakiet.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Podwójna kropka („..”) mówi Pythonowi, aby:
- Zacznij od katalogu podpakietu (rachunek różniczkowy), gdzie moduł (integracje.py) istnieje.
- Przejdź do pakietu nadrzędnego (narzędzie_matematyczne) katalog podpakietu.
- Znaleźć geometria podpakiet w katalogu nadrzędnym.
- Wejdź do kształty.py moduł i import romb z tego.
Tak więc notacja z kropką reprezentuje liczbę katalogów, do których można przejść z bieżącego katalogu modułu.
Import aliasów dla wygody
Możesz przypisać alias do importu, ułatwiając odwoływanie się do niego w kodzie. Aliasy są przydatne w przypadku długich nazw pakietów lub modułów.
Aby przypisać alias, użyj Jak słowo kluczowe.
import math_tool.calculus as cal
Jak dystrybuować swój pakiet w Pythonie
Python zapewnia narzędzia i platformę do tworzenia i dystrybucji pakietów. Dystrybucja pakietu umożliwia udostępnianie kodu innym programistom, promowanie współpracy, uproszczenie instalacji dla użytkowników i wniesienie wkładu w szerszą społeczność Pythona.
Krok 1: Utwórz konto na PyPI
Indeks pakietów Pythona (PyPI) jest domyślnym repozytorium pakietów Pythona. Możesz opublikować swoje pakiety na PyPI, aby inni programiści mogli je łatwo znaleźć i zainstalować.
Pamiętaj o swoim nazwa użytkownika I hasło ponieważ będziesz ich potrzebować do uwierzytelnienia podczas przesyłania paczki do PyPI.
Te narzędzia ułatwiają konfigurowanie, budowanie i przesyłanie pakietu dystrybucyjnego za pomocą jednego polecenia.
pip install build wheel twine
Krok 3: Utwórz plik setup.py
Aby dystrybuować swój pakiet, utwórz plik plik setup.py w katalogu głównym twojego projektu. The konfiguracja.py zawiera metadane dotyczące twojego pakietu, takie jak jego nazwa, wersja, autor, opis, zależności i inne.
Narzędzia do zarządzania pakietami będą używać konfiguracja.py plik, aby skonfigurować i zbudować pakiet.
#setup.py
from setuptools import setup, find_packages
setup(
name='' ,
version='1.0.0',
author='' ,
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)
Krok 4: Zbuduj pakiet
Gdy masz konfiguracja.py plik gotowy, możesz go użyć do zbudowania pakietu dystrybucyjnego. W terminalu lub wierszu polecenia przejdź do katalogu zawierający konfiguracja.py plik i wykonaj następujące polecenie:
python setup.py sdist bdist_wheel
To polecenie generuje plik dyst katalog zawierający źródłowy pakiet dystrybucyjny (.tar.gz) i pakiet dystrybucyjny koła (.whl). Zobaczysz także a zbudować I informacje informator.
Krok 5: Prześlij pakiet do PyPI
Mając gotowy pakiet, możesz przesłać go do PyPI.
Wykonaj następujące polecenie:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Odwiedź swoją PyPI stronę zarządzania projektami, aby zobaczyć swój pakiet.
Teraz inni programiści, którzy uznają Twój pakiet za przydatny, mogą go zainstalować i używać lokalnie.
Jak zainstalować pakiet Pythona
Menedżerowie pakietów, tacy jak pip ułatwiają instalację i zarządzanie pakietami Pythona z różnych źródeł, w tym Python Package Index (PyPI). Aby zainstalować pakiet za pomocą pypeć, otwórz terminal lub wiersz polecenia i użyj następującego polecenia:
pip install
Aby zobaczyć wszystkie dostępne polecenia i opcje dla pypeć Użyj --pomoc opcja.
Pisanie czystych modułów
Pakiety zawierają moduły i podpakiety, które z kolei zawierają inne moduły. Dobrą praktyką jest modularyzacja kodu, zwłaszcza podczas pracy nad większymi projektami, ponieważ promuje to lepszą organizację kodu i czytelność. Dlatego ważne jest, aby podczas programowania w Pythonie pisać moduły w sposób przejrzysty.