Научите како да креирате, дистрибуирате и користите пакете у Питхон-у уз помоћ овог водича.
Замислите застрашујући задатак развоја свеобухватне апликације ограничене на једну Питхон датотеку. Иако је технички изводљиво, то је у супротности са основним принципима изградње ефикасног, одрживог и поновно употребљивог софтвера. Из таквих разлога, пакети и модули су неопходни за изградњу и развој софтвера.
Шта је пакет?
У Питхон-у, пакет пружа начин да се заједно организују логички повезани модули и ресурси. То је директоријум који садржи више Питхон модула, подпакета и других ресурса.
Пакети пружају хијерархијску структуру, омогућавајући вам да организујете код вашег пројекта на различитим нивоима апстракције.
Разлика између пакета и модула
Док можете користити оба пакета и модули за организовање кода, постоје разлике између њих:
- Модул: Модул је датотека која садржи Питхон код. Дефинише функције, класе, променљиве и друге објекте које можете да увезете и користите у свом коду.
- Пакет: Пакет је колекција једног или више модула и може укључивати и подпакете.
Како направити пакет у Питхон-у
Да бисте креирали пакет, следите ове наведене кораке.
Корак 1: Направите директоријум пројекта
Почните креирањем директоријума пројекта.
study_bud/
Корак 2: Креирајте директоријум пакета
Унутар директоријума вашег пројекта направите други директоријум који ће служити као директоријум пакета. Дајте му смислено име које представља сврху или функционалност пакета. Директоријум пакета ће садржати модуле и подпакете који се односе на ваш пакет.
study_bud/
math_tool/
Корак 3: Дефинишите датотеку пакета __инит__.пи
У директоријуму пакета креирајте __инит__.пи фајл. Присуство __инит__.пи датотека је оно што директоријум чини пакетом у Питхон-у.
Ако треба да иницијализујете код кад год користите пакет, укључите га у __инит__.пи фајл иначе је увек празан.
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 # entire package
Такође можете користити тачку за увоз модула, подпакета или одређених својстава из пакета. Тачкаста нотација вам омогућава да се крећете кроз структуру директоријума пакета. Тачкаста нотација чини ваш увоз читљивијим и лакшим за одржавање.
from math_tool.operations import add, multiply # specific functions
У горњем коду сте се кретали из директоријума пакета (матх_тоол) до операције модул који користи нотацију тачке и увезе две функције (додати и умножити).
Апсолутни увоз вс. Релативни увоз
Витх апсолутниувози, наводите пуну путању од пакета највишег нивоа (основни пакет) до жељеног модула или подпакета. Ово је најчешћи и препоручени начин за увоз модула и пакета у Питхон.
from math_tool.geometry.shapes import parallelogram
Почевши од матх_тоол идите у геометрија подпакет, пронађите схапес.пи модул и увезите паралелограм функција.
Док релативанувози омогућавају вам да извршите увоз у односу на локацију тренутног модула користећи нотацију тачака да бисте одредили релативне увозе.
На пример, унутар рачун/интеграције.пи модула, можете користити релативни увоз за увоз функције из схапес.пи модул у геометрија подпакет.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Двострука тачка ("..") говори Пајтону да:
- Почните из директоријума потпакета (рачуница) где је модул (интеграције.пи) постоји.
- Идите у родитељски пакет (матх_тоол) директоријум потпакета.
- Финд тхе геометрија подпакет у родитељском директоријуму.
- Иди у схапес.пи модул и увоз ромб из њега.
Дакле, ознака тачке представља број директоријума до којих се може кретати из тренутног директоријума модула.
Увоз алиас-а ради погодности
Можете да доделите псеудоним увозу што олакшава позивање у вашем коду. Алиаси су згодни када се ради о дугим именима пакета или модула.
Да бисте доделили псеудоним користите као кључна реч.
import math_tool.calculus as cal
Како дистрибуирати свој пакет у Питхон-у
Питхон вам пружа алате и платформу за прављење и дистрибуцију вашег пакета. Дистрибуција вашег пакета вам омогућава да делите свој код са другим програмерима, промовишете сарадњу, поједноставите инсталацију за кориснике и допринесете широј Питхон заједници.
Корак 1: Креирајте налог на ПиПИ
Индекс Питхон пакета (ПиПИ) је подразумевано спремиште за Питхон пакете. Можете да објавите своје пакете на ПиПИ-ју тако да други програмери могу лако да их пронађу и инсталирају.
Обавезно запамтите своје корисничко име и Лозинка јер ће вам требати за аутентификацију када отпремате свој пакет у ПиПИ.
Ови алати вам олакшавају конфигурисање, прављење и гурање пакета за дистрибуцију у једној команди.
pip install build wheel twine
Корак 3: Креирајте датотеку сетуп.пи
Да бисте дистрибуирали свој пакет, креирајте а сетуп.пи датотеку у основном директоријуму вашег пројекта. Тхе сетуп.пи датотека садржи метаподатке о вашем пакету, као што су његово име, верзија, аутор, опис, зависности и још много тога.
Алати за управљање пакетима ће користити сетуп.пи датотеку за конфигурисање и прављење пакета.
#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: Направите пакет
Једном када имате сетуп.пи датотека спремна, можете је користити за прављење пакета за дистрибуцију. У вашем терминалу или командној линији, идите до директоријума који садржи сетуп.пи датотеку и извршите следећу команду:
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
Да бисте видели све доступне команде и опције за пип користити --помоћ опција.
Писање чистих модула
Пакети садрже модуле и подпакете који заузврат садрже друге модуле. Добра је пракса да модуларизирате свој код, посебно када радите на већим пројектима, јер промовише бољу организацију кода и читљивост. Зато је важно писати модуле са јасноћом када развијате са Питхон-ом.