Водич за почетнике за креирање и коришћење пакета у Питхон-у

Замислите застрашујући задатак развоја свеобухватне апликације ограничене на једну Питхон датотеку. Иако је технички изводљиво, то је у супротности са основним принципима изградње ефикасног, одрживог и поновно употребљивог софтвера. Из таквих разлога, пакети и модули су неопходни за изградњу и развој софтвера.

Шта је пакет?

У Питхон-у, пакет пружа начин да се заједно организују логички повезани модули и ресурси. То је директоријум који садржи више Питхон модула, подпакета и других ресурса.

Пакети пружају хијерархијску структуру, омогућавајући вам да организујете код вашег пројекта на различитим нивоима апстракције.

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

Иако можете да користите и пакете и модуле за организовање кода, постоје разлике између њих:

  • Модул: Модул је датотека која садржи Питхон код. Дефинише функције, класе, променљиве и друге објекте које можете да увезете и користите у свом коду.
  • Пакет: Пакет је колекција једног или више модула и може укључивати и подпакете.

Како направити пакет у Питхон-у

Да бисте креирали пакет, следите ове наведене кораке.

Корак 1: Направите директоријум пројекта

Почните креирањем директоријума пројекта.

 study_bud/

Корак 2: Креирајте директоријум пакета

Унутар директоријума вашег пројекта направите други директоријум који ће служити као директоријум пакета. Дајте му смислено име које представља сврху или функционалност пакета. Директоријум пакета ће садржати модуле и подпакете који се односе на ваш пакет.

 study_bud/
    math_tool/

Корак 3: Дефинишите датотеку пакета __инит__.пи

У директоријуму пакета креирајте датотеку __инит__.пи. Присуство датотеке __инит__.пи је оно што директоријум чини пакетом у Питхон-у.

  Надгледање и управљање Доцкер контејнером је једноставно са ових 8 ЦЛИ алата

Ако треба да иницијализујете код кад год користите пакет, укључите га у датотеку __инит__.пи, иначе је увек празан.

 study_bud/
    math_tool/
        __init__.py

Корак 4: Додајте модуле у пакет

Унутар директоријума пакета додајте Питхон модуле (.пи) који дефинишу функције, класе или променљиве.

Ови модули садрже стварни код који обезбеђује функционалност вашег пакета. Можете креирати више модула унутар директоријума пакета.

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

Корак 5: Додајте подпакете у пакет

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

Потпакет је једноставно још један директоријум пакета унутар главног директоријума пакета. Сваки потпакет треба да има своју __инит__.пи датотеку. Потпакети омогућавају даљу организацију и одвајање кода.

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

У овим корацима, креирали сте пакет матх_тоол, додали два модула (оператионс.пи и статистицс.пи) и два подпакета геометрија и рачун који сваки има своје модуле.

Праћењем ових корака можете лако организовати сродну функционалност користећи пакет и подпакете, што олакшава управљање и поновно коришћење кода.

Како радити са пакетом у Питхон-у

Да бисте радили са пакетом, потребно је да га увезете. Кључне речи импорт и фром вам омогућавају да увезете и користите пакет у свом коду.

 import math_tool 

Такође можете користити тачку за увоз модула, подпакета или одређених својстава из пакета. Тачкаста нотација вам омогућава да се крећете кроз структуру директоријума пакета. Тачкаста нотација чини ваш увоз читљивијим и лакшим за одржавање.

 from math_tool.operations import add, multiply 

У горњем коду, прешли сте из директоријума пакета (матх_тоол) до оперативног модула користећи нотацију тачке и увезли две функције (сабирање и множење).

  Како пратити хасхтагове на Инстаграму

Апсолутни увоз у односу на релативни увоз

Са апсолутним увозом, одређујете пуну путању од пакета највишег нивоа (основни пакет) до жељеног модула или подпакета. Ово је најчешћи и препоручени начин за увоз модула и пакета у Питхон.

 from math_tool.geometry.shapes import parallelogram

Почевши од матх_тоол идите у подпакет геометрије, пронађите модул схапес.пи и увезите функцију паралелограма.

Док релативни увози вам омогућавају да извршите увоз у односу на локацију тренутног модула користећи тачку да бисте одредили релативне увозе.

На пример, унутар модула цалцулус/интегратионс.пи, можете користити релативни увоз да бисте увезли функцију из модула схапес.пи у подпакет геометрије.

 
from ..geometry.shapes import rhombus

Двострука тачка (..”) говори Питхон-у да:

  • Почните од директоријума потпакета (калкулација) где постоји модул (интегратионс.пи).
  • Идите у директоријум надређеног пакета (матх_тоол) подпакета.
  • Пронађите подпакет геометрије у родитељском директоријуму.
  • Идите у модул схапес.пи и увезите ромб из њега.

Дакле, ознака тачке представља број директоријума до којих се може кретати из тренутног директоријума модула.

Увоз алиас-а ради погодности

Можете да доделите псеудоним увозу што олакшава позивање у вашем коду. Алиаси су згодни када се ради о дугим именима пакета или модула.

Да бисте доделили псеудоним користите кључну реч ас.

 import math_tool.calculus as cal

Како дистрибуирати свој пакет у Питхон-у

Питхон вам пружа алате и платформу за прављење и дистрибуцију вашег пакета. Дистрибуција вашег пакета вам омогућава да делите свој код са другим програмерима, промовишете сарадњу, поједноставите инсталацију за кориснике и допринесете широј Питхон заједници.

Корак 1: Креирајте налог на ПиПИ

Индекс Питхон пакета (ПиПИ) је подразумевано спремиште за Питхон пакете. Можете да објавите своје пакете на ПиПИ-ју тако да други програмери могу лако да их пронађу и инсталирају.

  Како израчунати уплате за кредит у Екцел-у са ПМТ функцијом

Обавезно запамтите своје корисничко име и лозинку јер ће вам бити потребни за аутентификацију када отпремате пакет у ПиПИ.

Корак 2: Инсталирајте алате за управљање пакетима

Ови алати вам олакшавају конфигурисање, прављење и гурање пакета за дистрибуцију у једној команди.

 pip install build wheel twine

Корак 3: Креирајте датотеку сетуп.пи

Да бисте дистрибуирали свој пакет, креирајте а сетуп.пи датотеку у основном директоријуму вашег пројекта. Датотека сетуп.пи садржи метаподатке о вашем пакету, као што су његово име, верзија, аутор, опис, зависности и још много тога.

Алати за управљање пакетима ће користити датотеку сетуп.пи да конфигуришу и направе ваш пакет.

 
from setuptools import setup, find_packages

setup(
    name="<package name>",
    version='1.0.0',
    author="<Your Name>",
    description='A collection of mathematical utility functions',
    packages=find_packages(),
    install_requires=[
        'numpy',
        'scipy',
    ],
)

Корак 4: Направите пакет

Када припремите датотеку сетуп.пи, можете је користити за прављење пакета за дистрибуцију. У вашем терминалу или командној линији идите до директоријума који садржи датотеку сетуп.пи и извршите следећу команду:

 python setup.py sdist bdist_wheel

Ова команда генерише дист директоријум који садржи изворни дистрибутивни пакет (.тар.гз) и пакет за дистрибуцију точка (.вхл). Такође ћете видети директоријум за изградњу и информације.

Корак 5: Отпремите пакет у ПиПИ

Када је ваш пакет спреман, можете га отпремити у ПиПИ.

Извршите следећу команду:

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

Посетите своје ПиПИ страницу за управљање пројектима да видите свој пакет.

Сада други програмери којима је ваш пакет користан могу да га инсталирају и користе локално.

Како инсталирати Питхон пакет

Менаџери пакета као што је пип олакшавају инсталирање и управљање Питхон пакетима из различитих извора, укључујући Питхон Пацкаге Индек (ПиПИ). Да бисте инсталирали пакет користећи пип, отворите свој терминал или командну линију и користите следећу команду:

 pip install <package_name>

Да бисте видели све доступне команде и опције за пип користите опцију –хелп.

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

Пакети садрже модуле и подпакете који заузврат садрже друге модуле. Добра је пракса да модуларизирате свој код, посебно када радите на већим пројектима, јер промовише бољу организацију кода и читљивост. Зато је важно писати модуле са јасноћом када развијате са Питхон-ом.