Selle juhendi abil saate teada, kuidas Pythonis pakette luua, levitada ja kasutada.
Kujutage ette, kui hirmutav ülesanne on töötada välja kõikehõlmav rakendus, mis piirdub ühe Pythoni failiga. Kuigi see on tehniliselt teostatav, on see vastuolus tõhusa, hooldatava ja korduvkasutatava tarkvara loomise põhipõhimõtetega. Sellistel põhjustel on paketid ja moodulid tarkvara ehitamiseks ja arendamiseks hädavajalikud.
Mis on pakett?
Pythonis pakub pakett võimalust loogiliselt seotud mooduleid ja ressursse koos korraldada. See on kataloog, mis sisaldab mitut Pythoni moodulit, alampakette ja muid ressursse.
Paketid pakuvad hierarhilist struktuuri, mis võimaldab teil korraldada oma projekti koodi erinevatel abstraktsioonitasemetel.
Erinevused pakettide ja moodulite vahel
Kuigi saate kasutada nii pakette kui moodulid koodi korraldamiseks, nende vahel on erinevusi:
- Moodul: moodul on fail, mis sisaldab Pythoni koodi. See määratleb funktsioonid, klassid, muutujad ja muud objektid, mida saate oma koodis importida ja kasutada.
- pakett: pakett on ühest või mitmest moodulist koosnev kogum ja see võib sisaldada ka alampakette.
Kuidas Pythonis paketti luua
Paketi loomiseks järgige neid samme.
1. samm: looge projektikataloog
Alusta projektikataloogi loomisega.
study_bud/
2. samm: looge paketikataloog
Looge oma projektikataloogis teine kataloog, mis toimib paketikataloogina. Andke sellele tähendusrikas nimi, mis esindab paketi eesmärki või funktsionaalsust. Paketikataloog sisaldab teie paketiga seotud mooduleid ja alampakette.
study_bud/
math_tool/
3. samm: määrake paketi __init__.py fail
Looge paketikataloogis __init__.py faili. Juuresolekul __init__.py fail muudab kataloogi Pythonis paketi.
Kui teil on paketi kasutamisel vaja koodi lähtestada, lisage see __init__.py muidu on see alati tühi.
study_bud/
math_tool/
__init__.py
4. samm: lisage paketile moodulid
Lisage paketikataloogi Pythoni moodulid (.py), mis määratlevad funktsioone, klasse või muutujaid.
Need moodulid sisaldavad tegelikku koodi, mis pakub teie paketi funktsioone. Paketikataloogis saate luua mitu moodulit.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
5. samm: lisage paketile alampaketid
Kui teie paketil peab olema hierarhiline struktuur või see sisaldab erinevaid funktsioone, saate paketikataloogis luua alampakette.
Alampakett on lihtsalt teine paketikataloog põhipaketi kataloogis. Igal alampaketil peaks olema oma __init__.py faili. Alampaketid võimaldavad koodi edasist korrastamist ja eraldamist.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
Nende sammudega olete loonud a matemaatika_tööriist pakett, lisatud kaks moodulit (operatsioonid.py ja statistika.py) ja kaks alampaketti geomeetria ja arvutus igaühel on oma moodulid.
Järgides neid samme, saate hõlpsasti korraldada seotud funktsioone paketi ja alampakettide abil, muutes koodi haldamise ja taaskasutamise lihtsamaks.
Kuidas Pythonis paketiga töötada
Pakiga töötamiseks peate selle importima. The importida ja alates märksõnad võimaldavad importida ja koodis paketti kasutada.
import math_tool # entire package
Punktmärki saate kasutada ka moodulite, alampakettide või konkreetsete atribuutide importimiseks paketist. Punktmärk võimaldab navigeerida paketikataloogi struktuuris. Punktide märkimine muudab teie impordi loetavamaks ja hõlpsamini hooldatavaks.
from math_tool.operations import add, multiply # specific functions
Ülaltoodud koodis navigeerisite paketikataloogist (matemaatika_tööriist) juurde operatsioonid moodul, kasutades punkti tähistust ja imporditud kaks funktsiooni (lisama ja korrutada).
Absoluutne import vs. Suhteline import
Koos absoluutneimport, määrate täieliku tee tipppaketist (juurpaketist) soovitud mooduli või alampaketini. See on Pythonis moodulite ja pakettide importimiseks kõige levinum ja soovitatavam viis.
from math_tool.geometry.shapes import parallelogram
Alates matemaatika_tööriist sisse minna geomeetria alampakett, otsige üles kujundid.py moodul ja importige rööpkülik funktsiooni.
Kuigi sugulaneimport võimaldab importida praeguse mooduli asukoha suhtes, kasutades suhtelise impordi määramiseks punktimärki.
Näiteks sees calculus/integrations.py moodulist saate funktsiooni importimiseks kasutada suhtelist importi kujundid.py moodulis geomeetria alampakett.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Topeltpunkt (..") annab Pythonile käsu:
- Alustage alampaketi kataloogist (arvutus) kus moodul (integrations.py) on olemas.
- Minge emapaketti (matemaatika_tööriist) alampaketi kataloog.
- Otsige üles geomeetria alampakett ülemkataloogis.
- Minge sisse kujundid.py moodul ja import romb sellest.
Seega tähistab punktitähis kataloogide arvu, kuhu praegusest moodulikataloogist navigeerida.
Mugavuse huvides impordib alias
Saate määrata impordile pseudonüümi, mis muudab koodis viitamise lihtsamaks. Pseudonüümid on kasulikud pikkade paketi- või moodulinimede käsitlemisel.
Pseudonüümi määramiseks kasutage nagu märksõna.
import math_tool.calculus as cal
Kuidas oma paketti Pythonis levitada
Python pakub teile paketi koostamiseks ja levitamiseks tööriistu ja platvormi. Paketi levitamine võimaldab teil jagada oma koodi teiste arendajatega, edendada koostööd, lihtsustada kasutajate installimist ja aidata kaasa laiemale Pythoni kogukonnale.
1. samm: looge PyPI-s konto
Pythoni paketiregister (PyPI) on Pythoni pakettide vaikehoidla. Saate avaldada oma paketid PyPI-s, et teised arendajad saaksid need hõlpsalt leida ja installida.
Pidage kindlasti meeles oma kasutajanimi ja parool kuna vajate neid autentimiseks, kui laadite paketi PyPI-sse üles.
Need tööriistad muudavad levitatava paketi konfigureerimise, koostamise ja edastamise lihtsaks ühe käsuga.
pip install build wheel twine
3. samm: looge fail setup.py
Paketi levitamiseks looge a setup.py faili oma projekti juurkataloogis. The setup.py fail sisaldab teie paketi metaandmeid, nagu selle nimi, versioon, autor, kirjeldus, sõltuvused ja palju muud.
Paketihaldustööriistad kasutavad setup.py faili paketi konfigureerimiseks ja koostamiseks.
#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',
],
)
4. samm: koostage pakett
Kui teil on setup.py fail valmis, saate seda kasutada levitatava paketi koostamiseks. Terminalis või käsureal navigeerige kataloogi mis sisaldab setup.py faili ja käivitage järgmine käsk:
python setup.py sdist bdist_wheel
See käsk genereerib a dist kataloog, mis sisaldab allikalevipaketti (.tar.gz) ja rataste jaotuspaketti (.whl). Näete ka a ehitada ja info kataloog.
5. samm: laadige pakett üles PyPI-sse
Kui pakett on valmis, saate selle PyPI-sse üles laadida.
Käivitage järgmine käsk:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Külastage oma PyPI projektijuhtimise lehel, et näha oma paketti.
Nüüd saavad teised arendajad, kes leiavad, et teie pakett on kasulik, selle kohapeal installida ja kasutada.
Kuidas installida Pythoni paketti
Paketihalduritele meeldib pip muudavad Pythoni pakettide installimise ja haldamise lihtsaks erinevatest allikatest, sealhulgas Pythoni paketiindeksist (PyPI). Paketi installimiseks kasutades pip, avage terminal või käsuviip ja kasutage järgmist käsku:
pip install
Kõigi saadaolevate käskude ja valikute vaatamiseks pip kasuta -- aidake valik.
Puhaste moodulite kirjutamine
Paketid sisaldavad mooduleid ja alampakette, mis omakorda sisaldavad muid mooduleid. Hea tava on koodi modulariseerida, eriti kui töötate suuremate projektidega, kuna see soodustab koodi paremat organiseerimist ja loetavust. Seega on Pythoniga arendades oluline moodulid selgelt kirjutada.