Opi luomaan, jakamaan ja käyttämään paketteja Pythonissa tämän oppaan avulla.

Kuvittele, kuinka pelottava tehtävä on kehittää kattava sovellus, joka rajoittuu yhteen Python-tiedostoon. Vaikka se on teknisesti mahdollista, se on vastoin tehokkaiden, ylläpidettävien ja uudelleenkäytettävien ohjelmistojen rakentamisen ydinperiaatteita. Näistä syistä paketit ja moduulit ovat välttämättömiä ohjelmistojen rakentamisessa ja kehittämisessä.

Mikä on paketti?

Pythonissa paketti tarjoaa tavan järjestää loogisesti toisiinsa liittyvät moduulit ja resurssit yhteen. Se on hakemisto, joka sisältää useita Python-moduuleja, alipaketteja ja muita resursseja.

Paketit tarjoavat hierarkkisen rakenteen, jonka avulla voit järjestää projektisi koodin eri abstraktiotasoilla.

Ero pakettien ja moduulien välillä

Vaikka voit käyttää sekä paketteja että moduulit koodin järjestämiseen, niiden välillä on eroja:

  • Moduuli: Moduuli on tiedosto, joka sisältää Python-koodin. Se määrittelee funktiot, luokat, muuttujat ja muut objektit, joita voit tuoda ja käyttää koodissasi.
  • instagram viewer
  • Paketti: Paketti on kokoelma yhdestä tai useammasta moduulista ja se voi sisältää myös alipaketteja.

Kuinka luoda paketti Pythonissa

Luo paketti noudattamalla näitä ohjeita.

Vaihe 1: Luo projektihakemisto

Aloita luomalla projektihakemisto.

study_bud/

Vaihe 2: Luo pakettihakemisto

Luo projektihakemistoon toinen hakemisto, joka toimii pakettihakemistona. Anna sille merkityksellinen nimi, joka edustaa paketin tarkoitusta tai toimivuutta. Pakettihakemisto sisältää pakettiisi liittyvät moduulit ja alipaketit.

study_bud/
math_tool/

Vaihe 3: Määritä paketin __init__.py-tiedosto

Luo pakettihakemistoon __init__.py tiedosto. Läsnäolo __init__.py tiedosto tekee hakemistosta paketin Pythonissa.

Jos sinun on alustettava koodi aina, kun käytät pakettia, sisällytä se __init__.py muussa tapauksessa se on aina tyhjä.

study_bud/
math_tool/
__init__.py

Vaihe 4: Lisää moduulit pakettiin

Lisää pakettihakemistoon Python-moduuleja (.py), jotka määrittävät funktioita, luokkia tai muuttujia.

Nämä moduulit sisältävät varsinaisen koodin, joka tarjoaa pakettisi toiminnallisuuden. Voit luoda useita moduuleja pakettihakemistoon.

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

Vaihe 5: Lisää pakettiin alapaketteja

Jos paketillasi on oltava hierarkkinen rakenne tai se sisältää erillisiä toimintoja, voit luoda alipaketteja pakettihakemistoon.

Alapaketti on yksinkertaisesti toinen pakettihakemisto pääpakettihakemistossa. Jokaisella alapaketilla tulee olla omansa __init__.py tiedosto. Alapaketit mahdollistavat koodin järjestämisen ja erottamisen.

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

Näissä vaiheissa olet luonut a math_tool paketti, lisätty kaksi moduulia (operations.py ja Statistics.py) ja kaksi alapakettia geometria ja laskenta jokaisella on omat moduulinsa.

Seuraamalla näitä vaiheita voit helposti järjestää liittyviä toimintoja paketin ja alipakettien avulla, mikä helpottaa koodin hallintaa ja uudelleenkäyttöä.

Kuinka työskennellä paketin kanssa Pythonissa

Jotta voit työskennellä paketin kanssa, sinun on tuotava se. The tuonti ja alkaen avainsanojen avulla voit tuoda paketin ja käyttää sitä koodissasi.

import math_tool # entire package

Voit myös käyttää pistemerkintää moduulien, alipakettien tai tiettyjen ominaisuuksien tuomiseen paketista. Pistemerkinnän avulla voit selata pakettihakemistorakennetta. Pistemerkintä tekee tuonnistasi luettavamman ja helpommin ylläpidettävän.

from math_tool.operations import add, multiply # specific functions

Yllä olevassa koodissa navigoit pakettihakemistosta (math_tool) kohtaan toiminnot moduuli käyttäen pistemerkintää ja tuonut kaksi funktiota (lisätä ja moninkertaistaa).

Absoluuttinen tuonti vs. Suhteellinen tuonti

Kanssa ehdotontuonti, määrität täyden polun ylätason paketista (juuripaketti) haluttuun moduuliin tai alipakettiin. Tämä on yleisin ja suositeltu tapa tuoda moduuleja ja paketteja Pythonissa.

from math_tool.geometry.shapes import parallelogram

Alkaen math_tool mene sisään geometria alapaketti, etsi shapes.py moduuli ja tuo se suunnikas toiminto.

Sillä aikaa suhteellinentuonti voit tehdä tuontia suhteessa nykyisen moduulin sijaintiin käyttämällä pistemerkintää suhteellisten tuontien määrittämiseen.

Esimerkiksi sisällä calculus/integrations.py -moduulista, voit käyttää suhteellista tuontia tuodaksesi funktion sovelluksesta shapes.py moduulissa geometria alapaketti.

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

Kaksoispiste (..") kertoo Pythonille:

  • Aloita alipakettihakemistosta (laskenta) missä moduuli (integrations.py) olemassa.
  • Siirry yläpakettiin (math_tool) alapaketin hakemistosta.
  • Etsi geometria alipaketti päähakemistossa.
  • Mene sisään shapes.py moduuli ja tuonti rombi siitä.

Pistemerkintä tarkoittaa siis niiden hakemistojen määrää, joihin navigoidaan nykyisestä moduulihakemistosta.

Alias-tuonti mukavuussyistä

Voit määrittää tuonnille aliaksen, jotta siihen on helpompi viitata koodissasi. Aliakset ovat käteviä, kun käsitellään pitkiä pakettien tai moduulien nimiä.

Voit määrittää aliaksen käyttämällä kuten avainsana.

import math_tool.calculus as cal

Kuinka jakaa paketti Pythonissa

Python tarjoaa sinulle työkalut ja alustan paketin rakentamiseen ja jakeluun. Paketin jakamisen avulla voit jakaa koodisi muiden kehittäjien kanssa, edistää yhteistyötä, yksinkertaistaa asennusta käyttäjille ja osallistua laajempaan Python-yhteisöön.

Vaihe 1: Luo tili PyPI: ssä

Python-pakettihakemisto (PyPI) on Python-pakettien oletusvarasto. Voit julkaista pakettisi PyPI: ssä, jotta muut kehittäjät voivat helposti löytää ja asentaa ne.

Muista muistaa omasi käyttäjätunnus ja Salasana koska tarvitset niitä todennusta varten, kun lähetät paketin PyPI: hen.

Nämä työkalut helpottavat jaettavan paketin määrittämistä, rakentamista ja työntämistä yhdellä komennolla.

pip install build wheel twine

Vaihe 3: Luo setup.py-tiedosto

Jos haluat jakaa paketin, luo a setup.py tiedosto projektisi juurihakemistossa. The setup.py tiedosto sisältää metatietoja paketistasi, kuten sen nimen, version, tekijän, kuvauksen, riippuvuudet ja paljon muuta.

Paketinhallintatyökalut käyttävät setup.py tiedosto paketin määrittämiseksi ja rakentamiseksi.

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

Vaihe 4: Rakenna paketti

Kun sinulla on setup.py tiedosto on valmis, voit käyttää sitä levitettävän paketin rakentamiseen. Päätteessäsi tai komentokehotteessa navigoi hakemistoon sisältää setup.py tiedosto ja suorita seuraava komento:

python setup.py sdist bdist_wheel

Tämä komento luo a dist hakemisto, joka sisältää lähdejakelupaketin (.tar.gz) ja pyörän jakelupaketin (.whl). Näet myös a rakentaa ja tiedot hakemistosta.

Vaihe 5: Lataa paketti PyPI: hen

Kun paketti on valmis, voit ladata sen PyPI: hen.

Suorita seuraava komento:

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

Vieraile omassasi PyPI projektinhallintasivulla nähdäksesi pakettisi.

Nyt muut kehittäjät, jotka pitävät paketiasi hyödyllisenä, voivat asentaa ja käyttää sitä paikallisesti.

Python-paketin asentaminen

Paketinhoitajat pitävät pipistä helpottaa Python-pakettien asentamista ja hallintaa eri lähteistä, mukaan lukien Python Package Index (PyPI). Paketin asentaminen käyttämällä pip, avaa terminaali tai komentokehote ja käytä seuraavaa komentoa:

pip install 

Nähdäksesi kaikki käytettävissä olevat komennot ja vaihtoehdot kohteelle pip Käytä --auta vaihtoehto.

Puhtaiden moduulien kirjoittaminen

Paketit sisältävät moduuleja ja alipaketteja, jotka puolestaan ​​sisältävät muita moduuleja. On hyvä käytäntö moduloida koodisi, varsinkin kun työskentelet suurempien projektien parissa, koska se edistää koodin parempaa organisointia ja luettavuutta. Pythonilla kehitettäessä on siis tärkeää kirjoittaa moduulit selkeästi.