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.
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ě.