Python Poetry Bilan Ish Samaradorligini 2x Oshirish

Muallif: Javohir Abdullayev · · Python

Python Poetry Bilan Ish Samaradorligini 2x Oshirish

Nima uchun pip va requirements.txt bugungi kunda yetarli emas?

Python dunyosida loyiha yaratishda ko'pchilik dasturchilar odatdagidek python -m venv venv va pip install -r requirements.txt usulidan foydalanishadi. Ammo loyiha kattalashib, kutubxonalar soni 20-30 tadan oshgach, kutilmagan muammolar boshlanadi: kutubxonalarning ichki bog'liqliklari (sub-dependencies) bir-biriga zid keladi, ishlab chiqish (dev) va ishlab chiqarish (production) uchun kerakli paketlar aralashib ketadi hamda boshqa dasturchi loyihani klon qilganda aynan bir xil versiyalar o'rnatilishiga 100% kafolat bo'lmaydi.

Aynan mana shu boshog'riqlarni butunlay unutish va ishlash tezligini sezilarli darajada oshirish uchun zamonaviy Python ekotizimida Poetry vositasi standartga aylanib bormoqda.

Poetry nima va uning asosiy afzalliklari qanday?

Poetry — bu Python loyihalarida paketlarni boshqarish, virtual muhitni (virtualenv) avtomatik sozlash va paketlarni PyPI platformasiga nashr qilish imkonini beruvchi yaxlit vositadir. U Node.js dunyosidagi npm yoki Rust tilidagi Cargo kabi ishlaydi.

  • Avtomatik virtual muhit: Har safar qo'lda venv papkalarini yaratish va faollashtirish shart emas. Poetry buni loyiha papkasidan chiqmagan holda o'zi hal qiladi.
  • pyproject.toml standarti: requirements.txt, setup.py, setup.cfg kabi bir nechta fayllar o'rniga barcha sozlamalar bitta zamonaviy PEP 518 formatidagi pyproject.toml faylida saqlanadi.
  • poetry.lock fayli: Barcha o'rnatilgan paketlarning aniq versiyalari va ularning ichki bog'liqliklari saqlanadi, bu esa loyihaning barcha serverlarda bir xil ishlashini ta'minlaydi (deterministik tizim).
  • Guruhlarga ajratish: Test yoki formatlash uchun kerakli vositalarni (masalan, pytest, black, ruff) faqat ishlab chiqish guruhi (dev group) ichiga ajratib qo'yish mumkin.

Poetry vositasini o'rnatish va loyihani boshlash

Poetry-ni global tizimingizga to'g'ri o'rnatish uchun quyidagi buyruqdan foydalanish tavsiya etiladi:

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

O'rnatish tugagach, uning to'g'ri ishlashini tekshirib ko'ring:

poetry --version

Yangi loyiha yaratish yoki mavjudini sozlash

Yangi loyiha boshlash uchun poetry new mening_loyiham buyrug'i beriladi. Agar mavjud papkangizda Poetry-ni ishga tushirmoqchi bo'lsangiz:

poetry init

Ushbu buyruq sizga interaktiv savollar beradi (loyiha nomi, tavsifi, muallif va kutubxonalar) va avtomatik tarzda pyproject.toml faylini hosil qiladi.

Paketlarni o'rnatish va guruhlar bilan ishlash

Poetry orqali paket qo'shish juda tez va qulay. Masalan, loyihangizga FastAPI va Uvicorn qo'shmoqchi bo'lsangiz:

poetry add fastapi uvicorn

Agar faqat dasturlash jarayonida kerak bo'ladigan vositalarni (masalan, pytest) qo'shmoqchi bo'lsangiz, ularni alohida guruhga joylashtiring:

poetry add pytest pytest-asyncio --group dev

Ushbu yondashuv orqali siz loyihani ishlab chiqarish serveriga (production) deploy qilayotganingizda keraksiz paketlarni o'rnatmasdan server resursini tejashingiz mumkin:

poetry install --without dev

Virtual muhitda kodni ishga tushirish

Poetry virtual muhitni o'zi boshqargani sababli, buyruqlarni muhit ichida yurgizishning ikkita oson yo'li bor:

  1. To'g'ridan-to'g'ri poetry run orqali:
    poetry run python main.py
  2. Muhitga kirish orqali (poetry shell):
    poetry shell
    python main.py

Xulosa

Python Poetry shunchaki yangi paket menejeri emas, balki jamoaviy va shaxsiy loyihalarda vaqtni tejovchi, kutubxonalar to'qnashuvining oldini oluvchi va loyihani deploy qilish jarayonini yengillashtiruvchi kuchli vositadir. Agar siz hali ham an'anaviy requirements.txt usulidan foydalanayotgan bo'lsangiz, keyingi Python loyihangizni Poetry bilan boshlab ko'ring va ish unumdorligingiz yangi bosqichga ko'tarilganini his eting.

Teglar: #Python #Poetry #Ish samaradorligi #Backend