Naučite kako stvarati, distribuirati i koristiti pakete u Pythonu uz pomoć ovog vodiča.

Zamislite zastrašujući zadatak razvoja sveobuhvatne aplikacije ograničene na jednu Python datoteku. Iako je tehnički izvedivo, protivi se temeljnim načelima izgradnje učinkovitog softvera koji se može održavati i ponovno koristiti. Iz tih razloga, paketi i moduli su bitni za izgradnju i razvoj softvera.

Što je paket?

U Pythonu, paket pruža način da zajedno organizirate logički povezane module i resurse. To je direktorij koji sadrži višestruke Python module, pod-pakete i druge resurse.

Paketi pružaju hijerarhijsku strukturu, omogućujući vam organiziranje koda vašeg projekta na različitim razinama apstrakcije.

Razlika između paketa i modula

Dok možete koristiti oba paketa i moduli za organiziranje koda, postoje razlike među njima:

  • Modul: Modul je datoteka koja sadrži Python kod. Definira funkcije, klase, varijable i druge objekte koje možete uvesti i koristiti u svom kodu.
  • Paket: Paket je zbirka jednog ili više modula i može također uključivati ​​pod-pakete.
instagram viewer

Kako stvoriti paket u Pythonu

Za izradu paketa slijedite ove korake.

Korak 1: Stvorite imenik projekta

Započnite stvaranjem imenika projekta.

study_bud/

Korak 2: Stvorite imenik paketa

Unutar direktorija vašeg projekta kreirajte još jedan direktorij koji će služiti kao direktorij paketa. Dajte mu smisleno ime koje predstavlja svrhu ili funkcionalnost paketa. Direktorij paketa sadržavat će module i pod-pakete koji se odnose na vaš paket.

study_bud/
math_tool/

Korak 3: Definirajte datoteku paketa __init__.py

U direktoriju paketa stvorite __init__.py datoteka. Prisutnost __init__.py datoteka je ono što čini direktorij paketom u Pythonu.

Ako trebate inicijalizirati kod kad god koristite paket, uključite ga u __init__.py datoteka inače je uvijek prazna.

study_bud/
math_tool/
__init__.py

Korak 4: Dodajte module u paket

Unutar direktorija paketa dodajte Python module (.py) koji definiraju funkcije, klase ili varijable.

Ovi moduli sadrže stvarni kod koji pruža funkcionalnost vašeg paketa. Možete stvoriti više modula unutar direktorija paketa.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py

Korak 5: Dodajte podpakete u paket

Ako vaš paket treba imati hijerarhijsku strukturu ili sadrži različite funkcije, možete stvoriti pod-pakete unutar direktorija paketa.

Potpaket je jednostavno još jedan direktorij paketa unutar glavnog direktorija paketa. Svaki potpaket treba imati svoje __init__.py datoteka. Potpaketi omogućuju daljnju organizaciju i odvajanje koda.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

U ovim ste koracima stvorili a matematički_alat paket, dodana dva modula (operacije.py i statistika.py), i dva potpaketa geometrija i račun svaki ima svoje module.

Slijedeći ove korake možete jednostavno organizirati povezane funkcije pomoću paketa i pod-paketa, što olakšava upravljanje i ponovnu upotrebu koda.

Kako raditi s paketom u Pythonu

Za rad s paketom morate ga uvesti. The uvoz i iz ključne riječi vam omogućuju uvoz i korištenje paketa u vašem kodu.

import math_tool # entire package

Također možete koristiti notaciju s točkama za uvoz modula, pod-paketa ili specifičnih svojstava iz paketa. Oznaka s točkama omogućuje vam navigaciju kroz strukturu direktorija paketa. Točkasti zapis čini vaše uvoze čitljivijima i lakšima za održavanje.

from math_tool.operations import add, multiply # specific functions

U gornjem kodu krenuli ste iz direktorija paketa (matematički_alat) prema operacije modul koristeći notaciju s točkama i uvezene dvije funkcije (dodati i pomnožiti).

Apsolutni uvoz vs. Relativni uvozi

S apsolutniuvozi, navodite puni put od paketa najviše razine (korijenski paket) do željenog modula ili pod-paketa. Ovo je najčešći i preporučeni način uvoza modula i paketa u Python.

from math_tool.geometry.shapes import parallelogram

Počevši od matematički_alat ići u geometrija potpaket, pronađite oblici.py modul i uvezite paralelogram funkcija.

Dok relativnauvozi omogućuju vam uvoze u odnosu na trenutnu lokaciju modula koristeći notaciju s točkama za određivanje relativnih uvoza.

Na primjer, unutar račun/integracije.py modula, možete koristiti relativni uvoz za uvoz funkcije iz oblici.py modul u geometrija potpaket.

# calculus/integrations.py
from ..geometry.shapes import rhombus

Dvostruka točka ("..") govori Pythonu da:

  • Počnite iz direktorija potpaketa (račun) gdje je modul (integracije.py) postoji.
  • Idite u nadređeni paket (matematički_alat) imenik potpaketa.
  • Naći geometrija pod-paket u nadređenom direktoriju.
  • Idi u oblici.py modul i uvoz romb iz toga.

Dakle, zapis s točkama predstavlja broj direktorija do kojih se treba kretati iz trenutnog direktorija modula.

Alias ​​uvozi radi praktičnosti

Uvozu možete dodijeliti pseudonim kako biste ga lakše upućivali u svom kodu. Aliasi su zgodni kada se radi o dugim nazivima paketa ili modula.

Za dodjelu pseudonima koristite kao ključna riječ.

import math_tool.calculus as cal

Kako distribuirati svoj paket u Pythonu

Python vam pruža alate i platformu za izradu i distribuciju vašeg paketa. Distribucija vašeg paketa omogućuje vam dijeljenje koda s drugim programerima, promicanje suradnje, pojednostavljenje instalacije za korisnike i doprinos široj Python zajednici.

Korak 1: Napravite račun na PyPI

Indeks Python paketa (PyPI) je zadano spremište za Python pakete. Možete objaviti svoje pakete na PyPI tako da ih drugi programeri mogu lako pronaći i instalirati.

Obavezno zapamtite svoje Korisničko ime i lozinka jer će vam trebati za provjeru autentičnosti prilikom učitavanja paketa na PyPI.

Ovi vam alati olakšavaju konfiguriranje, izgradnju i guranje paketa za distribuciju u jednoj naredbi.

pip install build wheel twine

Korak 3: Stvorite datoteku setup.py

Da biste distribuirali svoj paket, kreirajte a datoteku setup.py u korijenskom direktoriju vašeg projekta. The setup.py datoteka sadrži metapodatke o vašem paketu, kao što su njegov naziv, verzija, autor, opis, ovisnosti i više.

Alati za upravljanje paketima koristit će setup.py datoteku za konfiguriranje i izgradnju vašeg paketa.

#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',
],
)

Korak 4: Izgradite paket

Nakon što dobijete setup.py datoteka spremna, možete je koristiti za izradu paketa za distribuciju. U vašem terminalu ili naredbenom retku, idite do imenika koji sadrži setup.py datoteku i izvršite sljedeću naredbu:

python setup.py sdist bdist_wheel

Ova naredba generira a dist direktorij koji sadrži izvorni distribucijski paket (.tar.gz) i distribucijski paket kotača (.whl). Također ćete vidjeti a izgraditi i info imenik.

Korak 5: Učitajte paket u PyPI

Kad je paket spreman, možete ga prenijeti na PyPI.

Izvršite sljedeću naredbu:

twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********

Posjetite svoju PyPI stranicu za upravljanje projektima da vidite svoj paket.

Sada drugi programeri kojima je vaš paket koristan mogu ga instalirati i koristiti lokalno.

Kako instalirati Python paket

Upravitelji paketa poput pipa olakšavaju instalaciju i upravljanje Python paketima iz raznih izvora, uključujući Python Package Index (PyPI). Da biste instalirali paket pomoću pip, otvorite terminal ili naredbeni redak i upotrijebite sljedeću naredbu:

pip install 

Da biste vidjeli sve dostupne naredbe i opcije za pip koristiti --Pomozite opcija.

Pisanje čistih modula

Paketi sadrže module i pod-pakete koji zauzvrat sadrže druge module. Dobra je praksa modularizirati svoj kod, osobito kada radite na većim projektima, jer to promiče bolju organizaciju koda i čitljivost. Stoga je važno pisati module s jasnoćom kada razvijate s Pythonom.