Објављивање Python пакета на PyPI помоћу Poetry-ја на Ubuntu 22.04

Објављивање Python пакета на PyPI помоћу Poetry-ја на Ubuntu 22.04

Увод

Python Package Index (PyPI) је централни репозиторијум за дистрибуцију Python пакета. Омогућава програмерима да деле свој код и алате са другима, олакшавајући сарадњу и иновације. Да бисте објавили своје Python пакете на PyPI, можете користити различита алате, један од најпопуларнијих је Poetry.

Поезија је менаџер зависности и алатка за изградњу која поједностављује процес развоја и објављивања Python пакета. Обезбеђује конзистентан и предвидљив начин управљања зависностима, генерисања кода за инсталацију и упакивања пројекта. У овом водичу ћемо користити Poetry за објављивање Python пакета на PyPI из Ubuntu 22.04 система.

Инсталирање Поезије

Да бисте инсталирали Poetry, отворите терминал и извршите следећу команду:


curl -sSL https://install.python-poetry.org | python3 -

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


poetry --version

Иницијализација пројекта

Затим, иницијализујте нови Poetry пројекат мењањем директоријума у коју желите да поставите пројекат и извршавањем следеће команде:


poetry new my_package

Ово ће створити нови директоријум под називом my_package који садржи све неопходне датотеке и директоријуме за Python пројекат.

Написивање кода за пакет

У директоријуму my_package створен је Python модул под називом __init__.py. Ово је улазна тачка за ваш пакет и овде ћете написати код за своје функције или класе.

На пример, можемо креирати функцију која израчунава површину круга:


from math import pi

def calculate_area(radius):
"""Израчунава површину круга.

Args:
radius (float): Пречник круга.

Returns:
float: Површина круга.
"""
return pi radius * 2

Генерисање датотеке манифеста (pyproject.toml)

Поезија користи датотеку манифеста која се зове pyproject.toml да дефинише metadata за ваш пакет, укључујући име, верзију, зависности и улазну тачку. Уређивањем ове датотеке можете да конфигуришете свој пакет како желите.

Следећи је пример pyproject.toml датотеке за наш my_package:


[tool.poetry]
name = "my_package"
version = "1.0.0"
description = "Пакет за израчунавање површине круга."
authors = ["Ваше име"]
license = "MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.8"

[tool.poetry.dev-dependencies]
pytest = "^6.2"

[tool.poetry.scripts]
my_script = "my_package.__init__:calculate_area"

У овој датотеци манифеста:

* name је име вашег пакета.
* version је верзија вашег пакета.
* description је кратак опис вашег пакета.
* authors је листа аутора пакета.
* license је лиценца под којом је објављен ваш пакет.
* readme је путања до датотеке са ознаком вашег пакета.
* dependencies је списак зависности које ваш пакет захтева.
* dev-dependencies је списак зависности које су потребне само за развој, а не за производњу.
* scripts је списак скрипти које су укључене у ваш пакет.

Упакивање пакета

Када завршите са писањем кода за ваш пакет и конфигурисањем датотеке манифеста, можете да упакујете свој пакет извршавањем следеће команде:


poetry build

Ово ће генерисати дистрибутивни пакет у директоријуму dist.

Објављивање пакета

Да бисте објавили свој пакет на PyPI, морате да имате налог на PyPI веб локацији. Ако већ немате налог, можете да га креирате на pypi.org/account/register.

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


poetry publish

Ова команда ће послати ваш пакет на PyPI сервер и учинити га доступним за друге да га преузму и инсталирају.

Закључак

У овом водичу смо научили како да објавимо Python пакет на PyPI помоћу Poetry-ја на Ubuntu 22.04. Користећи Poetry, можете једноставно и ефикасно управљати зависностима, конфигурисати metadata пакета и упаковати и објавити своје пакете. Ово може значајно да убрза ваш развојни процес и олакша другима коришћење вашег кода.

Често постављана питања (FAQs)

1. Како да ажурирам свој пакет на PyPI?
> Да бисте ажурирали свој пакет на PyPI, једноставно направите промене у свом коду, генеришите нову дистрибуцију и поново објавите пакет помоћу команде poetry publish.

2. Шта је датотека setup.cfg?
> Датотека setup.cfg је алтернативни начин конфигурисања вашег пакета у Poetry. Омогућава вам да пренапишете одређена подешавања у датотеци pyproject.toml.

3. Могу ли да објавим свој пакет на приватном PyPI серверу?
> Да, можете да објавите свој пакет на приватном PyPI серверу коришћењем прилагођене репозиторијске URL адресе.

4. Шта ако се суочим са грешкама при објављивању свог пакета?
> Ако наиђете на грешке при објављивању свог пакета, проверите да ли је ваш код без грешака, да ли је датотека манифеста правилно конфигурисана и да ли имате стабилну интернет везу.

5. Како да заштитим изворни код свог пакета?
> Да бисте заштитили изворни код свог пакета, можете користити алате за обфускацију или шифровање да га учините нечитљивим за друге.

6. Да ли је могуће објавити пакет који зависи од других приватних пакета?
> Да, али морате да поставите приватне пакете на исти приватни PyPI сервер на који објављујете свој пакет.

7. Да ли су PyPI пакети безбедни за употребу?
> PyPI пакети су обично безбедни за употребу, али је увек добра пракса да проверите изворни код пакета пре него што га инсталирате.

8. Где могу да пронађем додатне информације о Poetry-ју?
> Више информација о Poetry-ју можете пронаћи на званичној веб локацији Poetry.