Научете как да създавате, разпространявате и използвате пакети в Python с помощта на това ръководство.

Представете си трудната задача да разработите цялостно приложение, ограничено до един файл на Python. Въпреки че е технически осъществимо, то противоречи на основните принципи за изграждане на ефективен, поддържаем и многократно използваем софтуер. Поради тези причини пакетите и модулите са от съществено значение за изграждането и разработването на софтуер.

Какво е пакет?

В Python пакетът предоставя начин за организиране на логически свързани модули и ресурси заедно. Това е директория, която съдържа множество Python модули, под-пакети и други ресурси.

Пакетите осигуряват йерархична структура, която ви позволява да организирате кода на вашия проект на различни нива на абстракция.

Разлика между пакети и модули

Докато можете да използвате и двата пакета и модули за организиране на код, между тях има разлики:

  • Модул: Модулът е файл, който съдържа код на Python. Той дефинира функции, класове, променливи и други обекти, които можете да импортирате и използвате във вашия код.
  • instagram viewer
  • Пакет: Пакетът е колекция от един или повече модули и може също да включва подпакети.

Как да създадете пакет в Python

За да създадете пакет, следвайте тези изложени стъпки.

Стъпка 1: Създайте директория на проекта

Започнете със създаване на директория на проекта.

study_bud/

Стъпка 2: Създайте директория с пакети

В директорията на вашия проект създайте друга директория, която ще служи като директория на пакета. Дайте му смислено име, което представя целта или функционалността на пакета. Директорията на пакета ще съдържа модулите и подпакетите, свързани с вашия пакет.

study_bud/
math_tool/

Стъпка 3: Дефинирайте пакетния файл __init__.py

В директорията на пакета създайте __init__.py файл. Присъствието на __init__.py файл е това, което прави директорията пакет в Python.

Ако трябва да инициализирате код всеки път, когато използвате пакета, включете го в __init__.py файл в противен случай винаги е празен.

study_bud/
math_tool/
__init__.py

Стъпка 4: Добавяне на модули към пакета

В директорията на пакета добавете модули на Python (.py), които дефинират функции, класове или променливи.

Тези модули съдържат действителния код, който осигурява функционалността на вашия пакет. Можете да създадете множество модули в директорията на пакета.

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

Стъпка 5: Добавяне на подпакети към пакета

Ако вашият пакет трябва да има йерархична структура или съдържа различни функционалности, можете да създадете подпакети в директорията на пакета.

Подпакетът е просто друга директория на пакета в основната директория на пакета. Всеки подпакет трябва да има своя __init__.py файл. Подпакетите позволяват допълнителна организация и разделяне на кода.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

В тези стъпки сте създали a математически_инструмент пакет, добавени два модула (операции.py и статистика.py) и два подпакета геометрия и смятане всеки има своите модули.

Следвайки тези стъпки, можете лесно да организирате свързана функционалност с помощта на пакет и подпакети, което улеснява управлението и повторното използване на кода.

Как да работите с пакет в Python

За да работите с пакет, трябва да го импортирате. The импортиране и от ключовите думи ви позволяват да импортирате и използвате пакет във вашия код.

import math_tool # entire package

Можете също да използвате нотацията с точка за импортиране на модули, подпакети или специфични свойства от пакет. Нотацията с точка ви позволява да навигирате в структурата на директорията на пакета. Точковата нотация прави вашите импортирания по-четими и по-лесни за поддръжка.

from math_tool.operations import add, multiply # specific functions

В горния код навигирате от директорията на пакета (математически_инструмент) към операции модул с помощта на точкова нотация и импортирани две функции (добавете и умножават се).

Абсолютен внос срещу. Относителен внос

с абсолютенвнос, посочвате пълния път от пакета от най-високо ниво (основния пакет) до желания модул или подпакет. Това е най-често срещаният и препоръчителен начин за импортиране на модули и пакети в Python.

from math_tool.geometry.shapes import parallelogram

Започвайки от математически_инструмент отидете в геометрия подпакет, намерете форми.py модул и импортирайте успоредник функция.

Докато роднинавнос ви позволяват да правите импорти спрямо местоположението на текущия модул, като използвате нотацията с точка, за да укажете относителни импорти.

Например, вътре в calculus/integrations.py модул, можете да използвате относителен импорт, за да импортирате функция от форми.py модул в геометрия подпакет.

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

Двойната точка ("..") казва на Python да:

  • Започнете от директорията на подпакета (смятане), където модулът (интеграции.py) съществува.
  • Отидете в родителския пакет (математически_инструмент) директория на подпакета.
  • Намери геометрия подпакет в родителската директория.
  • Влезте в форми.py модул и импортиране ромб от него.

Така че нотацията с точка представлява броя на директориите, до които да се премине от текущата директория на модула.

Псевдоним импортира за удобство

Можете да присвоите псевдоним на импортиране, което улеснява справянето с него във вашия код. Псевдонимите са удобни, когато работите с дълги имена на пакети или модули.

За да зададете псевдоним, използвайте като ключова дума.

import math_tool.calculus as cal

Как да разпространявате вашия пакет в Python

Python ви предоставя инструменти и платформа за изграждане и разпространение на вашия пакет. Разпространението на вашия пакет ви позволява да споделяте своя код с други разработчици, да насърчавате сътрудничеството, да опростявате инсталацията за потребителите и да допринасяте за по-широката общност на Python.

Стъпка 1: Създайте акаунт в PyPI

Индекс на пакета на Python (PyPI) е хранилището по подразбиране за пакети на Python. Можете да публикувате вашите пакети в PyPI, така че други разработчици да могат лесно да ги намерят и инсталират.

Не забравяйте да запомните вашите потребителско име и парола тъй като ще ви трябват за удостоверяване, когато качвате пакета си в PyPI.

Тези инструменти ви улесняват да конфигурирате, изграждате и изпращате пакет за разпространение с една команда.

pip install build wheel twine

Стъпка 3: Създайте файл setup.py

За да разпространявате своя пакет, създайте a файл setup.py в основната директория на вашия проект. The setup.py файлът съдържа метаданни за вашия пакет, като неговото име, версия, автор, описание, зависимости и други.

Инструментите за управление на пакети ще използват setup.py файл за конфигуриране и изграждане на вашия пакет.

#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: Изградете пакета

След като имате setup.py готов файл, можете да го използвате за изграждане на пакет за разпространение. Във вашия терминал или команден ред, отидете до директорията съдържащи setup.py файл и изпълнете следната команда:

python setup.py sdist bdist_wheel

Тази команда генерира a разст директория, съдържаща пакет за разпространение на източник (.tar.gz) и пакет за разпространение на колела (.whl). Ще видите също a изграждане и инфо указател.

Стъпка 5: Качете пакета в PyPI

Когато вашият пакет е готов, можете да го качите в PyPI.

Изпълнете следната команда:

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

Посетете вашия PyPI страница за управление на проекти, за да видите вашия пакет.

Сега други разработчици, които намират вашия пакет за полезен, могат да го инсталират и използват локално.

Как да инсталирате Python пакет

Мениджъри на пакети като pip улесняват инсталирането и управлението на Python пакети от различни източници, включително Python Package Index (PyPI). За да инсталирате пакет с помощта на пип, отворете терминала или командния ред и използвайте следната команда:

pip install 

За да видите всички налични команди и опции за пип използвай --помогне опция.

Писане на чисти модули

Пакетите съдържат модули и подпакети, които на свой ред съдържат други модули. Добра практика е да модулирате кода си, особено когато работите върху по-големи проекти, тъй като това насърчава по-добрата организация на кода и четливостта. Така че е важно да пишете модули с яснота, когато разработвате с Python.