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.
instagram viewer

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.