Imaginează-ți sarcina descurajantă de a dezvolta o aplicație cuprinzătoare limitată la un singur fișier Python. Deși este fezabil din punct de vedere tehnic, contravine principiilor de bază ale construirii de software eficient, întreținut și reutilizabil. Din astfel de motive, pachetele și modulele sunt esențiale pentru construirea și dezvoltarea software-ului.
Cuprins
Ce este un pachet?
În Python, un pachet oferă o modalitate de a organiza module și resurse legate logic împreună. Este un director care conține mai multe module Python, sub-pachete și alte resurse.
Pachetele oferă o structură ierarhică, permițându-vă să organizați codul proiectului la diferite niveluri de abstractizare.
Diferența dintre pachete și module
Deși puteți folosi atât pachete, cât și module pentru a organiza codul, există diferențe între ele:
- Modul: Un modul este un fișier care conține cod Python. Acesta definește funcții, clase, variabile și alte obiecte pe care le puteți importa și utiliza în cod.
- Pachetul: Un pachet este o colecție de unul sau mai multe module și poate include și sub-pachete.
Cum se creează un pachet în Python
Pentru a crea un pachet, urmați acești pași prezentați.
Pasul 1: Creați un director de proiect
Începeți prin a crea un director de proiect.
study_bud/
Pasul 2: Creați un director de pachete
În directorul de proiect, creați un alt director care va servi drept director de pachet. Dați-i un nume semnificativ care să reprezinte scopul sau funcționalitatea pachetului. Directorul pachetului va conține modulele și sub-pachetele legate de pachetul dvs.
study_bud/
math_tool/
Pasul 3: Definiți fișierul pachet __init__.py
În directorul pachetului, creați un fișier __init__.py. Prezența fișierului __init__.py este ceea ce face din director un pachet în Python.
Dacă trebuie să inițializați un cod ori de câte ori utilizați pachetul, includeți-l în fișierul __init__.py, altfel este întotdeauna gol.
study_bud/
math_tool/
__init__.py
Pasul 4: Adăugați module la pachet
În directorul pachetului, adăugați module Python (.py) care definesc funcții, clase sau variabile.
Aceste module conțin codul real care oferă funcționalitatea pachetului dumneavoastră. Puteți crea mai multe module în directorul pachetului.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
Pasul 5: Adăugați sub-pachete la pachet
Dacă pachetul dumneavoastră trebuie să aibă o structură ierarhică sau conține funcționalități distincte, puteți crea sub-pachete în directorul pachetului.
Un subpachet este pur și simplu un alt director de pachete din directorul principal al pachetului. Fiecare sub-pachet ar trebui să aibă fișierul său __init__.py. Sub-pachetele permit organizarea și separarea ulterioară a codului.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
În acești pași, ați creat un pachet math_tool, ați adăugat două module (operations.py și statistics.py) și două sub-pachete geometrie și calcul, fiecare având modulele lor.
Urmând acești pași, puteți organiza cu ușurință funcționalitățile asociate folosind un pachet și sub-pachete, facilitând gestionarea și reutilizarea codului.
Cum să lucrați cu un pachet în Python
Pentru a lucra cu un pachet, trebuie să-l importați. Cuvintele cheie import și from vă permit să importați și să utilizați un pachet în codul dvs.
import math_tool
De asemenea, puteți utiliza notația cu puncte pentru a importa module, sub-pachete sau proprietăți specifice dintr-un pachet. Notația cu puncte vă permite să navigați prin structura directorului pachetului. Notarea cu puncte face importurile dvs. mai lizibile și mai ușor de întreținut.
from math_tool.operations import add, multiply
În codul de mai sus, ați navigat din directorul pachetului (math_tool) la modulul de operații folosind notația cu puncte și ați importat două funcții (adăugați și înmulțiți).
Importuri absolute vs. importuri relative
În cazul importurilor absolute, specificați calea completă de la pachetul de nivel superior (pachetul rădăcină) la modulul sau subpachetul dorit. Acesta este cel mai comun și recomandat mod de a importa module și pachete în Python.
from math_tool.geometry.shapes import parallelogram
Pornind de la math_tool, intrați în subpachetul geometry, găsiți modulul shapes.py și importați funcția paralelogram.
În timp ce importurile relative vă permit să faceți importuri relativ la locația modulului curent folosind notația cu puncte pentru a specifica importurile relative.
De exemplu, în interiorul modulului calculus/integrations.py, puteți utiliza importul relativ pentru a importa o funcție din modulul shapes.py din subpachetul geometrie.
from ..geometry.shapes import rhombus
Punctul dublu (“..”) îi spune lui Python să:
- Începeți din directorul sub-pachet (calcul) unde există modulul (integrations.py).
- Accesați directorul pachetului părinte (math_tool) al subpachetului.
- Găsiți subpachetul geometrie în directorul părinte.
- Accesați modulul shapes.py și importați rombul din acesta.
Deci, notația cu puncte reprezintă numărul de directoare în care să navigați din directorul modulului curent.
Alias Imports pentru comoditate
Puteți atribui un alias unui import, ceea ce face mai ușor să vă referiți în cod. Aliasurile sunt utile atunci când aveți de-a face cu nume lungi de pachete sau module.
Pentru a atribui un alias, utilizați cuvântul cheie as.
import math_tool.calculus as cal
Cum să vă distribuiți pachetul în Python
Python vă oferă instrumente și o platformă pentru a vă construi și distribui pachetul. Distribuirea pachetului vă permite să vă partajați codul cu alți dezvoltatori, să promovați colaborarea, să simplificați instalarea pentru utilizatori și să contribuiți la comunitatea mai largă Python.
Pasul 1: Creați un cont pe PyPI
Indexul pachetului Python (PyPI) este depozitul implicit pentru pachetele Python. Vă puteți publica pachetele pe PyPI, astfel încât alți dezvoltatori să le poată găsi și instala cu ușurință.
Asigurați-vă că vă amintiți numele de utilizator și parola, deoarece veți avea nevoie de ele pentru autentificare atunci când încărcați pachetul în PyPI.
Pasul 2: Instalați instrumentele de gestionare a pachetelor
Aceste instrumente vă ajută să configurați, să construiți și să împingeți un pachet distribuibil într-o singură comandă.
pip install build wheel twine
Pasul 3: Creați un fișier setup.py
Pentru a vă distribui pachetul, creați un fișierul setup.py în directorul rădăcină al proiectului dvs. Fișierul setup.py conține metadate despre pachetul dvs., cum ar fi numele, versiunea, autorul, descrierea, dependențele și multe altele.
Instrumentele de gestionare a pachetelor vor folosi fișierul setup.py pentru a configura și construi pachetul.
from setuptools import setup, find_packagessetup(
name="<package name>",
version='1.0.0',
author="<Your Name>",
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)
Pasul 4: Construiți pachetul
Odată ce aveți gata fișierul setup.py, îl puteți utiliza pentru a construi un pachet distribuibil. În terminalul sau promptul de comandă, navigați la directorul care conține fișierul setup.py și executați următoarea comandă:
python setup.py sdist bdist_wheel
Această comandă generează un director dist care conține un pachet de distribuție sursă (.tar.gz) și un pachet de distribuție roată (.whl). Veți vedea, de asemenea, un director de compilare și informații.
Pasul 5: Încărcați pachetul în PyPI
Cu pachetul gata, îl puteți încărca în PyPI.
Executați următoarea comandă:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Vizitează-ți PyPI pagina de management de proiect pentru a vedea pachetul dvs.
Acum, alți dezvoltatori care găsesc pachetul dvs. util îl pot instala și utiliza local.
Cum se instalează un pachet Python
Managerii de pachete precum pip facilitează instalarea și gestionarea pachetelor Python din diverse surse, inclusiv Python Package Index (PyPI). Pentru a instala un pachet folosind pip, deschideți terminalul sau promptul de comandă și utilizați următoarea comandă:
pip install <package_name>
Pentru a vedea toate comenzile și opțiunile disponibile pentru pip, utilizați opțiunea –help.
Scrierea modulelor curate
Pachetele conțin module și sub-pachete care la rândul lor conțin alte module. Este o practică bună să vă modularizați codul, mai ales atunci când lucrați la proiecte mai mari, deoarece promovează o mai bună organizare și lizibilitate a codului. Prin urmare, este important să scrieți module cu claritate atunci când dezvoltați cu Python.