Naučte se, jak vytvářet, distribuovat a používat balíčky v Pythonu s pomocí této příručky.

Představte si skličující úkol vývoje komplexní aplikace omezené na jeden Python soubor. I když je to technicky proveditelné, jde to proti základním principům vytváření efektivního, udržovatelného a opakovaně použitelného softwaru. Z těchto důvodů jsou balíčky a moduly nezbytné pro vytváření a vývoj softwaru.

Co je balíček?

V Pythonu poskytuje balíček způsob, jak organizovat logicky související moduly a zdroje dohromady. Je to adresář, který obsahuje více modulů Pythonu, dílčích balíčků a dalších zdrojů.

Balíčky poskytují hierarchickou strukturu, která vám umožňuje organizovat kód vašeho projektu na různých úrovních abstrakce.

Rozdíl mezi balíčky a moduly

Zatímco můžete použít oba balíčky a moduly pro organizaci kódu, jsou mezi nimi rozdíly:

  • Modul: Modul je soubor, který obsahuje kód Pythonu. Definuje funkce, třídy, proměnné a další objekty, které můžete importovat a používat ve svém kódu.
  • Balík: Balíček je kolekce jednoho nebo více modulů a může také obsahovat dílčí balíčky.
instagram viewer

Jak vytvořit balíček v Pythonu

Chcete-li vytvořit balíček, postupujte podle následujících kroků.

Krok 1: Vytvořte adresář projektu

Začněte vytvořením adresáře projektu.

study_bud/

Krok 2: Vytvořte adresář balíčku

V adresáři projektu vytvořte další adresář, který bude sloužit jako adresář balíčku. Dejte mu smysluplný název, který představuje účel nebo funkčnost balíčku. Adresář balíčku bude obsahovat moduly a dílčí balíčky související s vaším balíčkem.

study_bud/
math_tool/

Krok 3: Definujte soubor Package __init__.py

V adresáři balíčku vytvořte __init__.py soubor. Přítomnost někoho __init__.py soubor je to, co z adresáře dělá balíček v Pythonu.

Pokud potřebujete inicializovat kód při každém použití balíčku, zahrňte jej do __init__.py jinak je vždy prázdný.

study_bud/
math_tool/
__init__.py

Krok 4: Přidejte moduly do balíčku

Do adresáře balíčku přidejte moduly Pythonu (.py), které definují funkce, třídy nebo proměnné.

Tyto moduly obsahují skutečný kód, který poskytuje funkčnost vašeho balíčku. V adresáři balíčku můžete vytvořit více modulů.

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

Krok 5: Přidejte do balíčku dílčí balíčky

Pokud váš balíček potřebuje mít hierarchickou strukturu nebo obsahuje odlišné funkce, můžete vytvořit dílčí balíčky v adresáři balíčku.

Dílčí balíček je jednoduše další adresář balíčku v hlavním adresáři balíčku. Každý dílčí balíček by měl mít svůj __init__.py soubor. Dílčí balíčky umožňují další organizaci a oddělení 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 krocích jste vytvořili a math_tool balíček, přidány dva moduly (operace.py a statistika.py) a dva dílčí balíčky geometrie a počet každý má své moduly.

Pomocí těchto kroků můžete snadno uspořádat související funkce pomocí balíčku a dílčích balíčků, což usnadňuje správu a opětovné použití kódu.

Jak pracovat s balíčkem v Pythonu

Chcete-li pracovat s balíčkem, musíte jej importovat. The import a z klíčová slova vám umožňují importovat a používat balíček ve vašem kódu.

import math_tool # entire package

Tečkovou notaci můžete také použít pro import modulů, dílčích balíčků nebo specifických vlastností z balíčku. Tečkový zápis umožňuje procházet adresářovou strukturou balíčku. Tečkovaná notace činí vaše importy čitelnějšími a snáze se udržuje.

from math_tool.operations import add, multiply # specific functions

Ve výše uvedeném kódu jste přešli z adresáře balíčku (math_tool) k operace modul používající tečkovou notaci a importované dvě funkce (přidat a násobit).

Absolutní dovoz vs. Relativní dovozy

S absolutnídovozy, zadáte úplnou cestu z balíčku nejvyšší úrovně (kořenového balíčku) k požadovanému modulu nebo dílčímu balíčku. Toto je nejběžnější a doporučený způsob importu modulů a balíčků v Pythonu.

from math_tool.geometry.shapes import parallelogram

Začínající od math_tool jít do geometrie dílčí balíček, najděte tvary.py modul a importujte jej rovnoběžník funkce.

Zatímco relativnídovozy umožňují provádět importy vzhledem k aktuálnímu umístění modulu pomocí tečkové notace k určení relativních importů.

Například uvnitř kalkul/integrace.py můžete použít relativní import k importu funkce z tvary.py modul v geometrie dílčí balíček.

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

Dvojitá tečka (..) říká Pythonu, aby:

  • Začněte z adresáře dílčího balíčku (počet), kde je modul (integrace.py) existuje.
  • Přejděte do nadřazeného balíčku (math_tool) adresář dílčího balíčku.
  • Najít geometrie dílčího balíčku v nadřazeném adresáři.
  • Jděte do tvary.py modul a import kosočtverec z toho.

Tečkový zápis tedy představuje počet adresářů, do kterých se má přejít z aktuálního adresáře modulu.

Alias ​​Imports pro pohodlí

Importu můžete přiřadit alias, aby bylo snazší na něj odkazovat v kódu. Aliasy jsou užitečné při práci s dlouhými názvy balíčků nebo modulů.

Chcete-li přiřadit alias, použijte tak jako klíčové slovo.

import math_tool.calculus as cal

Jak distribuovat svůj balíček v Pythonu

Python vám poskytuje nástroje a platformu pro vytváření a distribuci vašeho balíčku. Distribuce vašeho balíčku vám umožní sdílet váš kód s ostatními vývojáři, podporovat spolupráci, zjednodušit instalaci pro uživatele a přispívat do širší komunity Pythonu.

Krok 1: Vytvořte si účet na PyPI

Index balíčku Python (PyPI) je výchozí úložiště pro balíčky Pythonu. Své balíčky můžete publikovat na PyPI, aby je ostatní vývojáři mohli snadno najít a nainstalovat.

Nezapomeňte si zapamatovat své uživatelské jméno a Heslo protože je budete potřebovat pro ověření při nahrávání balíčku do PyPI.

Tyto nástroje vám usnadní konfiguraci, sestavení a odeslání distribuovatelného balíčku pomocí jediného příkazu.

pip install build wheel twine

Krok 3: Vytvořte soubor setup.py

Chcete-li distribuovat svůj balíček, vytvořte a soubor setup.py v kořenovém adresáři vašeho projektu. The setup.py obsahuje metadata o vašem balíčku, jako je jeho název, verze, autor, popis, závislosti a další.

Nástroje pro správu balíčků budou používat setup.py soubor pro konfiguraci a sestavení vašeho balíčku.

#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: Sestavte balíček

Jakmile budete mít setup.py soubor připraven, můžete jej použít k vytvoření distribuovatelného balíčku. V terminálu nebo příkazovém řádku přejděte do adresáře obsahující setup.py soubor a spusťte následující příkaz:

python setup.py sdist bdist_wheel

Tento příkaz vygeneruje a dist adresář obsahující zdrojový distribuční balíček (.tar.gz) a distribuční balíček kola (.whl). Také uvidíte a stavět a info adresář.

Krok 5: Nahrajte balíček do PyPI

Když je váš balíček připraven, můžete jej nahrát do PyPI.

Proveďte následující příkaz:

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

Navštivte svůj PyPI stránku projektového řízení, abyste viděli svůj balíček.

Nyní jej mohou lokálně nainstalovat a používat jiní vývojáři, kteří považují váš balíček za užitečný.

Jak nainstalovat balíček Python

Správci balíčků jako pip usnadňují instalaci a správu balíčků Python z různých zdrojů, včetně Python Package Index (PyPI). Chcete-li nainstalovat balíček pomocí pip, otevřete terminál nebo příkazový řádek a použijte následující příkaz:

pip install 

Chcete-li zobrazit všechny dostupné příkazy a možnosti pro pip použít --Pomoc volba.

Psaní čistých modulů

Balíčky obsahují moduly a dílčí balíčky, které zase obsahují další moduly. Je dobrým zvykem modularizovat svůj kód, zejména při práci na větších projektech, protože to podporuje lepší organizaci kódu a čitelnost. Při vývoji v Pythonu je tedy důležité psát moduly srozumitelně.