Pomocou tejto príručky sa dozviete, ako vytvárať, distribuovať a používať balíčky v Pythone.
Predstavte si náročnú úlohu vývoja komplexnej aplikácie obmedzenej na jeden súbor Python. Hoci je to technicky uskutočniteľné, ide to proti základným princípom budovania efektívneho, udržiavateľného a opakovane použiteľného softvéru. Z týchto dôvodov sú balíky a moduly nevyhnutné na vytváranie a vývoj softvéru.
Čo je balík?
V Pythone balík poskytuje spôsob, ako spolu usporiadať logicky súvisiace moduly a zdroje. Je to adresár, ktorý obsahuje viacero modulov Pythonu, podbalíkov a iných zdrojov.
Balíky poskytujú hierarchickú štruktúru, ktorá vám umožňuje organizovať kód vášho projektu na rôznych úrovniach abstrakcie.
Rozdiel medzi balíkmi a modulmi
Zatiaľ čo môžete použiť oba balíčky a moduly na organizáciu kódu, sú medzi nimi rozdiely:
- modul: Modul je súbor, ktorý obsahuje kód Pythonu. Definuje funkcie, triedy, premenné a ďalšie objekty, ktoré môžete importovať a použiť vo svojom kóde.
- Balíček: Balík je kolekcia jedného alebo viacerých modulov a môže zahŕňať aj čiastkové balíky.
Ako vytvoriť balík v Pythone
Ak chcete vytvoriť balík, postupujte podľa týchto krokov.
Krok 1: Vytvorte adresár projektu
Začnite vytvorením adresára projektu.
study_bud/
Krok 2: Vytvorte adresár balíkov
V adresári projektu vytvorte ďalší adresár, ktorý bude slúžiť ako adresár balíkov. Dajte mu zmysluplný názov, ktorý predstavuje účel alebo funkčnosť balíka. Adresár balíkov bude obsahovať moduly a čiastkové balíky súvisiace s vaším balíkom.
study_bud/
math_tool/
Krok 3: Definujte súbor Package __init__.py
V adresári balíka vytvorte __init__.py súbor. Prítomnosť __init__.py súbor je to, čo robí adresár balíkom v Pythone.
Ak potrebujete inicializovať kód pri každom použití balíka, zahrňte ho do __init__.py súbor, inak je vždy prázdny.
study_bud/
math_tool/
__init__.py
Krok 4: Pridajte moduly do balíka
Do adresára balíkov pridajte moduly Pythonu (.py), ktoré definujú funkcie, triedy alebo premenné.
Tieto moduly obsahujú skutočný kód, ktorý poskytuje funkčnosť vášho balíka. V adresári balíka môžete vytvoriť viacero modulov.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
Krok 5: Pridajte do balíka čiastkové balíčky
Ak váš balík potrebuje mať hierarchickú štruktúru alebo obsahuje odlišné funkcie, môžete vytvoriť podbalíky v adresári balíka.
Podbalík je jednoducho ďalší adresár balíka v hlavnom adresári balíka. Každý čiastkový balík by mal mať svoje __init__.py súbor. Podbalíky umožňujú ďalšiu organizáciu a oddelenie kódu.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
V týchto krokoch ste vytvorili a math_tool balík, pridané dva moduly (operácie.py a statistika.py) a dva čiastkové balíčky geometria a kalkul každý má svoje moduly.
Nasledovaním týchto krokov môžete jednoducho usporiadať súvisiace funkcie pomocou balíka a čiastkových balíkov, čím sa zjednoduší správa a opätovné použitie kódu.
Ako pracovať s balíkom v Pythone
Ak chcete pracovať s balíkom, musíte ho importovať. The importovať a od kľúčové slová vám umožňujú importovať a používať balík vo vašom kóde.
import math_tool # entire package
Bodkovú notáciu môžete použiť aj na import modulov, čiastkových balíkov alebo špecifických vlastností z balíka. Bodková notácia vám umožňuje prechádzať adresárovou štruktúrou balíka. Bodková notácia robí vaše importy čitateľnejšími a ľahšie udržiavateľnými.
from math_tool.operations import add, multiply # specific functions
Vo vyššie uvedenom kóde ste prešli z adresára balíka (math_tool) do operácií modul pomocou bodkovej notácie a importovaných dvoch funkcií (pridať a množiť).
Absolútny dovoz vs. Relatívny dovoz
s absolútnedovoz, zadáte úplnú cestu z balíka najvyššej úrovne (koreňového balíka) k požadovanému modulu alebo pod balíku. Toto je najbežnejší a odporúčaný spôsob importu modulov a balíkov v Pythone.
from math_tool.geometry.shapes import parallelogram
Začať z math_tool ísť do geometria pod-balenie, nájdite tvary.py modul a importujte ho rovnobežník funkciu.
Zatiaľ čo príbuznýdovoz vám umožňujú vykonávať importy relatívne k aktuálnemu umiestneniu modulu pomocou bodkovej notácie na určenie relatívneho importu.
Napríklad vo vnútri calculus/integrations.py modul, môžete použiť relatívny import na importovanie funkcie z tvary.py modul v geometria čiastkový balík.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Dvojitá bodka (..) hovorí Pythonu, aby:
- Začnite z adresára čiastkového balíka (kalkul), kde je modul (integrácie.py) existuje.
- Prejdite do nadradeného balíka (math_tool) adresár podbalíka.
- Nájsť geometria čiastkový balík v nadradenom adresári.
- Choďte do tvary.py modul a import kosoštvorec od toho.
Bodkový zápis teda predstavuje počet adresárov, do ktorých sa má prejsť z aktuálneho adresára modulu.
Alias Imports pre pohodlie
Importu môžete priradiť alias, aby ste naň mohli jednoduchšie odkazovať v kóde. Aliasy sú užitočné pri práci s dlhými názvami balíkov alebo modulov.
Ak chcete priradiť alias, použite ako kľúčové slovo.
import math_tool.calculus as cal
Ako distribuovať svoj balík v Pythone
Python vám poskytuje nástroje a platformu na zostavenie a distribúciu vášho balíka. Distribúcia vášho balíka vám umožní zdieľať váš kód s ostatnými vývojármi, podporiť spoluprácu, zjednodušiť inštaláciu pre používateľov a prispieť k širšej komunite Pythonu.
Krok 1: Vytvorte si účet na PyPI
Index balíka Python (PyPI) je predvoleným úložiskom pre balíčky Python. Svoje balíčky môžete publikovať na PyPI, aby ich ostatní vývojári mohli ľahko nájsť a nainštalovať.
Nezabudnite si zapamätať svoje užívateľské meno a heslo pretože ich budete potrebovať na overenie pri nahrávaní balíka do PyPI.
Tieto nástroje vám uľahčia konfiguráciu, zostavenie a doručenie distribuovateľného balíka jediným príkazom.
pip install build wheel twine
Krok 3: Vytvorte súbor setup.py
Ak chcete distribuovať svoj balík, vytvorte a súbor setup.py v koreňovom adresári vášho projektu. The setup.py obsahuje metadáta o vašom balíku, ako je jeho názov, verzia, autor, popis, závislosti a ďalšie.
Nástroje na správu balíkov budú používať setup.py súbor na konfiguráciu a zostavenie vášho balíka.
#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: Zostavte balík
Akonáhle budete mať setup.py súbor pripravený, môžete ho použiť na zostavenie distribuovateľného balíka. V termináli alebo príkazovom riadku prejdite do adresára obsahujúce setup.py súbor a spustite nasledujúci príkaz:
python setup.py sdist bdist_wheel
Tento príkaz vygeneruje a dist adresár obsahujúci zdrojový distribučný balík (.tar.gz) a distribučný balík kolies (.whl). Uvidíte tiež a stavať a Info adresár.
Krok 5: Nahrajte balík do PyPI
Keď je váš balík pripravený, môžete ho nahrať do PyPI.
Vykonajte nasledujúci príkaz:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Navštívte svoje PyPI stránku projektového manažmentu, aby ste videli svoj balík.
Teraz ho môžu lokálne nainštalovať a používať iní vývojári, ktorí považujú váš balík za užitočný.
Ako nainštalovať balík Python
Správcovia balíkov ako pip zjednodušiť inštaláciu a správu balíkov Python z rôznych zdrojov vrátane indexu balíkov Python (PyPI). Ak chcete nainštalovať balík pomocou pip, otvorte terminál alebo príkazový riadok a použite nasledujúci príkaz:
pip install
Ak chcete zobraziť všetky dostupné príkazy a možnosti pre pip Použi --Pomoc možnosť.
Písanie čistých modulov
Balíky obsahujú moduly a čiastkové balíky, ktoré zase obsahujú ďalšie moduly. Je dobrou praxou modularizovať kód, najmä pri práci na väčších projektoch, pretože to podporuje lepšiu organizáciu kódu a jeho čitateľnosť. Pri vývoji v Pythone je teda dôležité písať moduly jasne.