Objavljivanje Python paketa na PyPI uz pomoć Poetry-ja na Ubuntu 22.04
Uvod
Python Package Index (PyPI) predstavlja centralno skladište za distribuciju Python paketa. Programerima omogućava da podele svoj kod i alate s drugima, olakšavajući tako saradnju i razvoj novih ideja. Za objavljivanje vlastitih Python paketa na PyPI, možete koristiti različite alate, a Poetry je jedan od najkorišćenijih.
Poetry je alatka za upravljanje zavisnostima i izradu koja pojednostavljuje proces razvoja i objavljivanja Python paketa. Nudi dosledan i predvidljiv način upravljanja zavisnostima, generisanja instalacionog koda i pakovanja projekta. U ovom vodiču, koristićemo Poetry za objavljivanje Python paketa na PyPI sistemu, koristeći Ubuntu 22.04 operativni sistem.
Instalacija Poetry-ja
Za instalaciju Poetry-ja, otvorite terminal i izvršite sledeću komandu:
curl -sSL https://install.python-poetry.org | python3 -
Ovo će instalirati Poetry i dodati ga u vašu PATH promenljivu okruženja. Da biste proverili da li je Poetry uspešno instaliran, pokrenite sledeću komandu:
poetry --version
Inicijalizacija projekta
Zatim, inicijalizujte novi Poetry projekat tako što ćete promeniti trenutni direktorijum u onaj gde želite smestiti projekat i izvršiti naredbu:
poetry new my_package
Ovo će stvoriti novi direktorijum pod nazivom my_package
, koji će sadržati sve neophodne fajlove i direktorijume za vaš Python projekat.
Pisanje koda za paket
Unutar direktorijuma my_package
, kreiran je Python modul nazvan __init__.py
. Ovo je ulazna tačka za vaš paket i ovde ćete pisati kod za vaše funkcije ili klase.
Na primer, možemo kreirati funkciju koja izračunava površinu kruga:
from math import pi
def izracunaj_povrsinu(poluprecnik):
"""Izračunava površinu kruga.
Args:
poluprecnik (float): Poluprečnik kruga.
Returns:
float: Površina kruga.
"""
return pi * poluprecnik ** 2
Generisanje datoteke manifesta (pyproject.toml)
Poetry koristi manifest fajl pod nazivom pyproject.toml
za definisanje metapodataka vašeg paketa, uključujući ime, verziju, zavisnosti i ulaznu tačku. Izmenom ovog fajla možete konfigurisati svoj paket prema potrebama.
Sledeći je primer pyproject.toml
fajla za naš my_package
:
[tool.poetry]
name = "my_package"
version = "1.0.0"
description = "Paket za izračunavanje površine kruga."
authors = ["Vaše ime"]
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__:izracunaj_povrsinu"
U ovom manifest fajlu:
* name
je naziv vašeg paketa.
* version
je verzija vašeg paketa.
* description
je kratak opis vašeg paketa.
* authors
je lista autora paketa.
* license
je licenca pod kojom je objavljen vaš paket.
* readme
je putanja do fajla sa detaljnim opisom vašeg paketa.
* dependencies
je popis zavisnosti koje vaš paket zahteva.
* dev-dependencies
je popis zavisnosti koje su potrebne samo za razvoj, a ne za produkciju.
* scripts
je popis skripti koje su uključene u vaš paket.
Pakovanje paketa
Kada završite sa pisanjem koda za vaš paket i konfigurisanjem manifest fajla, možete zapakovati svoj paket izvršavanjem sledeće komande:
poetry build
Ovo će generisati distributivni paket u direktorijumu dist
.
Objavljivanje paketa
Da biste objavili svoj paket na PyPI, potrebno je da imate nalog na PyPI web sajtu. Ako još uvek nemate nalog, možete ga kreirati na pypi.org/account/register.
Kada imate nalog, možete objaviti svoj paket izvršavanjem sledeće komande:
poetry publish
Ova komanda će poslati vaš paket na PyPI server i omogućiti drugima da ga preuzmu i instaliraju.
Zaključak
U ovom vodiču, naučili smo kako da objavimo Python paket na PyPI koristeći Poetry na Ubuntu 22.04. Upotrebom Poetry-ja, možete jednostavno i efikasno upravljati zavisnostima, konfigurisati metapodatke paketa i spakovati i objaviti svoje pakete. Ovo može znatno ubrzati vaš razvojni proces i olakšati drugima korišćenje vašeg koda.
Često postavljana pitanja (FAQs)
1. Kako da ažuriram svoj paket na PyPI?
> Da biste ažurirali svoj paket na PyPI, jednostavno napravite izmene u svom kodu, generišite novu distribuciju i ponovo objavite paket pomoću komande poetry publish
.
2. Šta je datoteka setup.cfg
?
> Datoteka setup.cfg
predstavlja alternativni način konfigurisanja vašeg paketa u Poetry. Omogućava vam da prepišete određene postavke u fajlu pyproject.toml
.
3. Mogu li da objavim svoj paket na privatnom PyPI serveru?
> Da, možete objaviti svoj paket na privatnom PyPI serveru korišćenjem prilagođene repozitorijumske URL adrese.
4. Šta ako se suočim sa greškama prilikom objavljivanja svog paketa?
> Ako naiđete na greške pri objavljivanju paketa, proverite da li je vaš kod bez grešaka, da li je manifest fajl pravilno konfigurisan i da li imate stabilnu internet vezu.
5. Kako da zaštitim izvorni kod svog paketa?
> Da biste zaštitili izvorni kod svog paketa, možete koristiti alate za obfuskaciju ili enkripciju kako biste ga učinili nečitljivim za druge.
6. Da li je moguće objaviti paket koji zavisi od drugih privatnih paketa?
> Da, ali morate postaviti privatne pakete na isti privatni PyPI server na koji objavljujete svoj paket.
7. Da li su PyPI paketi bezbedni za upotrebu?
> PyPI paketi su generalno bezbedni za upotrebu, ali uvek je preporučljivo da proverite izvorni kod paketa pre nego što ga instalirate.
8. Gde mogu pronaći dodatne informacije o Poetry-ju?
> Više informacija o Poetry-ju možete pronaći na zvaničnoj web stranici Poetry.