Takip et

Ubuntu 22.04 Üzerinde Python Bağımlılıklarını Yönetmek İçin Poetry Nasıl Kurulur ve Kullanılır?

Ubuntu 22.04 Üzerinde Python Bağımlılıklarını Yönetmek İçin Poetry Nasıl Kurulur ve Kullanılır? Python, veri biliminden web geliştirmey

Ubuntu 22.04 Üzerinde Python Bağımlılıklarını Yönetmek İçin Poetry Nasıl Kurulur ve Kullanılır?

Python, veri biliminden web geliştirmeye, otomasyondan yapay zekaya kadar geniş bir yelpazede kullanılan güçlü ve çok yönlü bir programlama dilidir. Python projeleri genellikle çok sayıda harici kütüphaneye ve pakete bağımlıdır. Bu bağımlılıkları etkin bir şekilde yönetmek, projenin istikrarı, tekrarlanabilirliği ve sürdürülebilirliği açısından kritik öneme sahiptir. Geleneksel olarak Python projelerinde pip ve venv (veya virtualenv) kombinasyonu ile bağımlılık yönetimi yapılırken, bu araçların bazı kısıtlamaları modern geliştirme süreçlerinde zorluklara yol açabilmektedir. İşte tam bu noktada Poetry gibi modern bağımlılık yöneticileri devreye girer.

Bu kapsamlı makalede, Ubuntu 22.04 işletim sistemi üzerinde Poetry’nin nasıl kurulacağını ve Python projelerinizde bağımlılıkları yönetmek için nasıl kullanılacağını ayrıntılı olarak inceleyeceğiz. Poetry’nin sağladığı avantajları, temel komutlarını ve ileri düzey özelliklerini ele alarak, Python geliştirme deneyiminizi nasıl daha verimli hale getirebileceğinizi göstereceğiz.

Neden Poetry? Geleneksel Yöntemlere Karşı Avantajları

Python’da bağımlılık yönetimi denince akla ilk gelen araçlar pip ve venv‘dir. pip, Python paketlerini kurmak ve kaldırmak için standart araçken, venv veya virtualenv ise her proje için izole edilmiş Python ortamları oluşturmaya yarar. Bu araçlar birlikte kullanıldığında, requirements.txt dosyası aracılığıyla projenin bağımlılıkları listelenir. Ancak bu yaklaşımın bazı eksiklikleri vardır:

1. Tutarsız Bağımlılık Çözümü: requirements.txt dosyası genellikle yalnızca doğrudan bağımlılıkları listeler ve bu bağımlılıkların alt bağımlılıklarının kesin versiyonlarını kilitlemez. Bu durum, farklı zamanlarda veya farklı makinelerde pip install -r requirements.txt çalıştırıldığında, alt bağımlılıkların farklı versiyonlarının kurulmasına ve dolayısıyla projenin tutarsız çalışmasına neden olabilir.
2. Lock Dosyası Eksikliği: requirements.txt bir “lock” dosyası değildir. Yani, bir projenin tüm bağımlılık ağacının (doğrudan ve dolaylı tüm bağımlılıklar) kesin versiyonlarını kaydetmez. Bu, projenin tam olarak tekrarlanabilirliğini zorlaştırır.
3. Geliştirici Deneyimi: pip ve venv‘nin kullanımı nispeten basittir, ancak sanal ortam oluşturma, etkinleştirme, paket kurma ve requirements.txt dosyasını manuel olarak güncelleme gibi adımlar geliştirme sürecini yavaşlatabilir.
4. Paketleme Zorlukları: Python projelerini dağıtılabilir paketler (örneğin PyPI’ya yüklenecek kütüphaneler) haline getirmek, setup.py veya setup.cfg gibi dosyalarla ek yapılandırma gerektirir ve karmaşık olabilir.

Poetry, bu sorunları çözmek için tasarlanmış modern bir Python bağımlılık yöneticisi ve paketleme aracıdır. Temel avantajları şunlardır:

* Tutarlı ve Tekrarlanabilir Ortamlar: Poetry, pyproject.toml dosyasında projenin tüm bağımlılıklarını (doğrudan ve dolaylı) tanımlar ve poetry.lock dosyası ile bu bağımlılıkların kesin versiyonlarını kilitler. Bu, projenin her zaman aynı bağımlılık setiyle kurulmasını ve çalışmasını garanti eder.
* Otomatik Sanal Ortam Yönetimi: Poetry, proje için otomatik olarak bir sanal ortam oluşturur ve yönetir. Geliştiricinin manuel olarak venv oluşturup etkinleştirmesine gerek kalmaz.
* Geliştirilmiş Bağımlılık Çözümü: Gelişmiş bir çözücü kullanarak bağımlılık çakışmalarını daha etkili bir şekilde yönetir.
* Kolay Paketleme ve Yayınlama: pyproject.toml dosyası, projenin metadata’sını (adı, versiyonu, yazar bilgileri vb.) içerir ve bu bilgileri kullanarak projenin kolayca paketlenmesini (sdist, wheel) ve PyPI gibi depolara yayınlanmasını sağlar.
* Kullanıcı Dostu CLI: Sezgisel komut satırı arayüzü (CLI) sayesinde bağımlılık ekleme, kaldırma, güncelleme ve komut çalıştırma gibi işlemler çok daha basittir.

Kısacası, Poetry, Python projeleri için modern, tutarlı ve geliştirici dostu bir bağımlılık yönetim ve paketleme çözümü sunar.

Ön Gereksinimler

Poetry kurulumuna başlamadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olunuz:

* Ubuntu 22.04 LTS: Bu makaledeki adımlar Ubuntu 22.04 (Jammy Jellyfish) için özel olarak test edilmiştir.
* Python 3: Ubuntu 22.04 varsayılan olarak Python 3.10 ile gelir. Poetry’nin çalışması için Python 3 kurulu olmalıdır. Terminalde python3 --version komutunu çalıştırarak Python sürümünüzü kontrol edebilirsiniz. Eğer kurulu değilse veya farklı bir Python sürümüne ihtiyacınız varsa, aşağıdaki komutlarla kurabilirsiniz:

sudo apt update
    sudo apt install python3 python3-pip

* Temel Terminal Bilgisi: Komut satırı arayüzünü (terminal) kullanmaya aşina olmanız gerekmektedir.

Poetry Kurulum Yöntemleri

Poetry’yi Ubuntu 22.04’e kurmanın birkaç yolu vardır. En çok önerilen ve genellikle en sorunsuz olan yöntem, Poetry’nin kendi resmi kurulum betiğini kullanmaktır. Alternatif olarak pipx veya pip ile de kurulum yapılabilir, ancak her bir yöntemin kendine göre avantajları ve dezavantajları bulunmaktadır.

Resmi Poetry Kurulum Betiği (Önerilen Yöntem)

Bu yöntem, Poetry’nin en güncel ve kararlı sürümünü sisteminizdeki diğer Python paketlerinden izole bir şekilde kurar. Bu, potansiyel bağımlılık çakışmalarını önler ve Poetry’nin kendi kendini yönetmesini sağlar.

1. Kurulum Betiğini Çalıştırma:
Terminalinizi açın ve aşağıdaki curl komutunu çalıştırın. Bu komut, Poetry’nin kurulum betiğini indirir ve python3 ile çalıştırır:

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

Bu komut, Poetry’yi ~/.local/bin dizinine ve ilgili bağımlılıklarını ~/.cache/pypoetry altına kuracaktır. Kurulum tamamlandığında, terminalde bir başarı mesajı göreceksiniz.

2. PATH Değişkenine Ekleme:
Kurulum betiği Poetry yürütülebilir dosyasını ~/.local/bin dizinine yerleştirir. Bu dizinin sisteminizin PATH değişkeninde olması gerekir, böylece Poetry komutunu herhangi bir yerden çalıştırabilirsiniz. Genellikle kurulum betiği bu adımı otomatik olarak önerir veya yapar. Eğer Poetry komutu bulunamazsa, aşağıdaki adımları uygulayarak PATH değişkeninizi güncelleyin:

* Bash Kullanıcıları İçin:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
        source ~/.bashrc

* Zsh Kullanıcıları İçin:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
        source ~/.zshrc

Bu komutlar, Poetry’nin yolunu kalıcı olarak kabuk yapılandırma dosyanıza ekler ve ardından bu dosyayı yeniden yükleyerek değişiklikleri uygular.

3. Kurulumu Doğrulama:
Şimdi Poetry’nin doğru bir şekilde kurulup kurulmadığını kontrol edebilirsiniz:

poetry --version

Bu komut, kurulu Poetry sürümünü göstermelidir (örn: Poetry (version 1.8.2)).

4. Poetry’yi Güncelleme:
Poetry’nin kendisini güncellemek için basit bir komut kullanabilirsiniz:

poetry self update

5. Poetry’yi Kaldırma:
Eğer Poetry’yi bu yöntemle kurduysanız, kaldırmak da oldukça basittir:

poetry self drop

Bu komut, Poetry’nin kurulu olduğu dizinleri temizleyecektir. PATH değişkenindeki girişi manuel olarak kaldırmanız gerekebilir.

pipx ile Kurulum (Alternatif Yöntem)

pipx, Python uygulamalarını izole edilmiş sanal ortamlara kurmak ve çalıştırmak için özel olarak tasarlanmış bir araçtır. Poetry gibi CLI tabanlı Python araçlarını yönetmek için mükemmel bir seçimdir.

1. pipx Kurulumu:
Öncelikle pipx‘i sisteminize kurmanız gerekir:

sudo apt update
    sudo apt install pipx

Kurulumdan sonra pipx‘in PATH değişkeninizde olduğundan emin olmak için aşağıdaki komutu çalıştırın:

pipx ensurepath

Bu komut, ~/.local/bin dizinini PATH değişkeninize ekleyecektir. Kabuk oturumunuzu yeniden başlatmanız gerekebilir (source ~/.bashrc veya source ~/.zshrc).

2. Poetry’yi pipx ile Kurma:
Şimdi pipx kullanarak Poetry’yi kurabilirsiniz:

pipx install poetry

pipx, Poetry için ayrı bir sanal ortam oluşturacak ve onu bu ortama kuracaktır.

3. Kurulumu Doğrulama:

poetry --version

4. Poetry’yi Güncelleme:

pipx upgrade poetry

5. Poetry’yi Kaldırma:

pipx uninstall poetry

pipx ile kurulum, Poetry’yi sistem Python’ından tamamen izole tuttuğu için oldukça temiz ve yönetilebilir bir yöntemdir.

pip ile Kurulum (Önerilmeyen Yöntem)

Teorik olarak Poetry’yi pip ile de kurabilirsiniz:

pip install poetry

Ancak bu yöntem önerilmez. pip ile kurduğunuzda Poetry, sistem Python ortamına veya o anda etkin olan sanal ortama kurulur. Bu durum, Poetry’nin kendi bağımlılıkları ile sisteminizdeki veya projenizdeki diğer paketler arasında çakışmalara yol açabilir. Ayrıca, Poetry’nin kendisini pip ile yönetmek, kendi bağımlılıklarını yönetmek için tasarlanmış bir aracı kullanmakla çelişir ve karmaşıklığa yol açabilir. Bu nedenle, yukarıda belirtilen iki yöntemden birini tercih etmeniz şiddetle tavsiye edilir.

Poetry ile Python Bağımlılıklarını Yönetme

Poetry başarıyla kurulduktan sonra, projelerinizde bağımlılıkları yönetmeye başlayabilirsiniz. İşte temel Poetry iş akışı:

Yeni Bir Poetry Projesi Oluşturma

Yeni bir Python projesi başlatmak için Poetry’nin new komutunu kullanabilirsiniz. Bu komut, standart bir proje yapısı oluşturur ve pyproject.toml dosyasını hazırlar.

poetry new my-awesome-project
cd my-awesome-project

Bu komut aşağıdaki gibi bir dizin yapısı oluşturacaktır:

my-awesome-project/
├── pyproject.toml
├── README.md
├── my_awesome_project/  # Projenizin ana paketi
│   └── __init__.py
└── tests/
    └── __init__.py
    └── test_my_awesome_project.py

Mevcut Bir Projeyi Poetry ile Başlatma

Eğer mevcut bir Python projeniz varsa ve onu Poetry ile yönetmeye başlamak istiyorsanız, projenizin kök dizininde poetry init komutunu kullanabilirsiniz. Bu komut, interaktif bir şekilde proje hakkında bilgi ister ve pyproject.toml dosyasını oluşturur.

cd /path/to/my-existing-project
poetry init

Poetry size aşağıdaki gibi sorular soracaktır:
* Package name [my-existing-project]:
* Version [0.1.0]:
* Description []:
* Author [Your Name ]:
* License []:
* Compatible Python versions [^3.10]: (Burada projenizin desteklediği Python versiyonlarını belirtirsiniz. ^3.10 Python 3.10 ve üzeri 3.x versiyonlarını ifade eder, ancak 4.0’ı kapsamaz.)
* Daha sonra bağımlılık eklemek isteyip istemediğinizi sorar.

Yanıtları tamamladıktan sonra, projenizin kök dizininde bir pyproject.toml dosyası oluşturulacaktır.

pyproject.toml Dosyası: Projenizin Kalbi

pyproject.toml, Poetry projenizin tüm meta verilerini ve bağımlılıklarını tanımlayan ana yapılandırma dosyasıdır. TOML (Tom’s Obvious, Minimal Language) formatında yazılmıştır. İşte temel bölümleri ve örnek bir içeriği:

[tool.poetry]
name = "my-awesome-project"
version = "0.1.0"
description = "A short description of my project."
authors = ["Your Name "]
license = "MIT"
readme = "README.md"
packages = [{include = "my_awesome_project"}] # Ana paketinizin dizinini belirtir

[tool.poetry.dependencies]
python = "^3.10" # Projenin uyumlu olduğu Python versiyonları
requests = "^2.28.1" # Üretim bağımlılığı
fastapi = {version = "^0.100.0", optional = true} # Opsiyonel bağımlılık

[tool.poetry.group.dev.dependencies] # Geliştirme bağımlılıkları grubu
pytest = "^7.4.0"
black = "^23.7.0"

[tool.poetry.group.docs.dependencies] # Belgeleme bağımlılıkları grubu
sphinx = "^7.0.0"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

* [tool.poetry]: Projenin adı, versiyonu, açıklaması, yazarları ve lisansı gibi temel meta verilerini içerir.
* [tool.poetry.dependencies]: Projenin üretim ortamında ihtiyaç duyduğu bağımlılıkları listeler. python = "^3.10" ifadesi, projenin Python 3.10 ve üzeri (ancak 4.0’dan küçük) sürümleriyle uyumlu olduğunu belirtir.
* [tool.poetry.group..dependencies]: Geliştirme, test veya belgeleme gibi belirli amaçlar için bağımlılık grupları tanımlamanızı sağlar. Bu gruplar varsayılan olarak kurulmaz, ancak poetry install --with komutuyla kurulabilir.
* [build-system]: Bu bölüm Poetry tarafından otomatik olarak yönetilir ve projenin nasıl inşa edileceğini belirtir. Genellikle elle düzenlenmez.

Bağımlılık Ekleme

Poetry ile bağımlılık eklemek çok kolaydır. poetry add komutu, pyproject.toml dosyasını günceller, bağımlılığı çözer, poetry.lock dosyasını oluşturur/günceller ve bağımlılığı sanal ortama kurar.

* Üretim Bağımlılığı Ekleme:

poetry add requests

Bu komut, requests kütüphanesinin en uygun sürümünü bulur ve [tool.poetry.dependencies] altına ekler.

* Belirli Bir Sürümü Ekleme:

poetry add beautifulsoup4@^4.12.2 # 4.12.2 ve üzeri, 5.0.0'dan küçük
    poetry add pandas@~2.0.3       # 2.0.3 ve üzeri, 2.1.0'dan küçük
    poetry add numpy==1.25.0       # Tam olarak 1.25.0

Poetry, sürüm kısıtlamaları için PEP 440’ı destekler. ^ (caret), ~ (tilde), == (eşit) gibi operatörleri kullanabilirsiniz.

* Geliştirme Bağımlılığı Ekleme:
Geliştirme, test veya belgeleme gibi sadece geliştirme sürecinde ihtiyaç duyulan bağımlılıkları ayrı bir gruba eklemek en iyi uygulamadır.

poetry add pytest --group dev
    poetry add black --group dev

Bu komutlar, pytest ve black‘i [tool.poetry.group.dev.dependencies] altına ekleyecektir.

* Opsiyonel Bağımlılık Ekleme:
Bazı bağımlılıklar projenin tüm kullanıcıları için gerekli olmayabilir. Örneğin, farklı veritabanı sürücüleri gibi.

poetry add psycopg2-binary --optional

Bu bağımlılık pyproject.toml içinde optional = true olarak işaretlenir ve poetry install komutuyla varsayılan olarak kurulmaz. Yalnızca poetry install --with psycopg2-binary gibi komutlarla kurulabilir.

Bağımlılıkları Kurma

poetry install komutu, poetry.lock dosyasında belirtilen tüm bağımlılıkları (veya yoksa pyproject.toml‘a göre çözer) sanal ortama kurar. Bu, projenin aynı bağımlılık setiyle tekrarlanabilir bir şekilde kurulmasını sağlar.

* Tüm Bağımlılıkları Kurma:

poetry install

Bu komut, üretim ve varsayılan geliştirme bağımlılıklarını kurar.

* Sadece Üretim Bağımlılıklarını Kurma:
Eğer bir üretim ortamında sadece temel bağımlılıkları kurmak istiyorsanız:

poetry install --no-dev

* Belirli Grupları Kurma:
Örneğin, sadece test bağımlılıklarını kurmak istiyorsanız:

poetry install --with dev --with docs

Bağımlılıkları Kaldırma

Bir bağımlılığı projenizden kaldırmak için poetry remove komutunu kullanın:

poetry remove requests
poetry remove pytest --group dev

Bu komutlar pyproject.toml ve poetry.lock dosyalarını günceller ve bağımlılığı sanal ortamdan kaldırır.

Bağımlılıkları Güncelleme

Bağımlılıklarınızı en son uyumlu sürümlerine güncellemek için poetry update komutunu kullanabilirsiniz:

* Tüm Bağımlılıkları Güncelleme:

poetry update

Bu komut, pyproject.toml‘daki kısıtlamalara uygun olarak tüm bağımlılıkları en yeni sürümlerine günceller ve poetry.lock dosyasını buna göre günceller.

* Belirli Bir Bağımlılığı Güncelleme:

poetry update requests

Bu, yalnızca requests kütüphanesini ve onun alt bağımlılıklarını günceller.

Sanal Ortam Yönetimi ve Komut Çalıştırma

Poetry, sanal ortamları sizin için otomatik olarak yönetir. Projenizin bağımlılıkları için özel bir sanal ortam oluşturur ve bu ortamda çalışır.

* Sanal Ortamın Konumu:
Varsayılan olarak Poetry, sanal ortamları ~/.cache/pypoetry/virtualenvs dizininde oluşturur. Her projenin kendi benzersiz sanal ortamı vardır. Eğer sanal ortamların proje dizini içinde (.venv klasörü olarak) oluşturulmasını isterseniz, aşağıdaki komutu çalıştırabilirsiniz:

poetry config virtualenvs.in-project true

Bu ayarı yaptıktan sonra yeni bir proje oluşturduğunuzda veya poetry install çalıştırdığınızda sanal ortam proje kök dizininizde oluşturulacaktır.

* Sanal Ortama Giriş (Activate):
Projenizin sanal ortamına girmek için poetry shell komutunu kullanın:

poetry shell

Bu komut, kabuğunuzu sanal ortamı kullanacak şekilde değiştirir. Artık python veya pip gibi komutları çalıştırdığınızda projenizin sanal ortamındaki versiyonları kullanılacaktır. Sanal ortamdan çıkmak için exit yazmanız yeterlidir.

* Komutları Sanal Ortamda Çalıştırma:
Sanal ortama girmeden doğrudan bir komutu projenizin sanal ortamında çalıştırmak için poetry run komutunu kullanabilirsiniz:

poetry run python my_script.py
    poetry run pytest
    poetry run black .

Bu, komutu sanal ortamın içindeymiş gibi çalıştırır ve işi bittikten sonra kabuğunuzu normal durumuna döndürür.

* Mevcut Sanal Ortamları Listeleme:

poetry env list

Bu komut, Poetry’nin yönettiği tüm sanal ortamları listeler.

* Belirli Bir Python Versiyonunu Kullanma:
Eğer sisteminizde birden fazla Python versiyonu kuruluysa ve Poetry’nin projeniz için belirli bir versiyonu kullanmasını istiyorsanız:

poetry env use python3.11 # Eğer Python 3.11 kuruluysa
    poetry env use /usr/bin/python3.12 # Tam yolu belirterek

Bu komut, projenizin pyproject.toml dosyasındaki Python kısıtlamalarıyla uyumlu bir sanal ortam oluşturur veya var olanı kullanır.

* Sanal Ortamı Kaldırma:
Bir projenin sanal ortamını tamamen kaldırmak için:

poetry env remove python3.10 # veya kullandığınız Python versiyonu
    # veya
    poetry env remove  # poetry env list ile görünen isim

Python Versiyonlarını Poetry ile Yönetme

Ubuntu 22.04, varsayılan olarak Python 3.10 ile gelir. Ancak farklı projeler farklı Python versiyonlarına ihtiyaç duyabilir. Poetry, bu durumu yönetmenize yardımcı olur.

* Farklı Python Versiyonları Kurma (Ubuntu’da):
Birden fazla Python versiyonuna ihtiyacınız varsa, deadsnakes PPA’sını kullanarak bunları Ubuntu’ya kurabilirsiniz:

sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    sudo apt install python3.11 python3.12

Bu komutlar Python 3.11 ve 3.12’yi sisteminize kuracaktır.

* pyenv ile Python Versiyonlarını Yönetme (Daha Esnek):
pyenv, birden fazla Python versiyonunu kolayca kurup yönetmenizi sağlayan popüler bir araçtır. Eğer çok sayıda Python versiyonuyla çalışıyorsanız veya geliştirme ortamınızda daha fazla esnekliğe ihtiyacınız varsa pyenv kullanmayı düşünebilirsiniz. pyenv‘i kurduktan sonra:

pyenv install 3.11.0
    pyenv local 3.11.0 # Proje dizini için 3.11.0'ı ayarlar

Ardından Poetry, pyenv tarafından sağlanan Python versiyonlarını otomatik olarak algılayabilir ve kullanabilir.

* Poetry’ye Belirli Bir Python Versiyonunu Söyleme:
pyproject.toml dosyanızda python = "^3.11" gibi bir kısıtlama belirtirseniz, Poetry bu kısıtlamaya uyan bir Python yorumlayıcısı bulmaya çalışacaktır. Eğer sisteminizde birden fazla uyumlu Python versiyonu varsa ve Poetry’nin belirli birini kullanmasını istiyorsanız, daha önce bahsedildiği gibi poetry env use python3.11 komutunu kullanabilirsiniz.

Gelişmiş Konular

Poetry’nin sunduğu bazı gelişmiş özellikler, daha karmaşık projelerde veya özel durumlarda oldukça faydalı olabilir.

Bağımlılık Grupları (Dependency Groups)

Daha önce de bahsettiğimiz gibi, Poetry bağımlılıkları gruplara ayırmanıza olanak tanır. Bu, projenizin farklı aşamaları veya farklı özellikleri için gerekli olan bağımlılıkları düzenlemenin temiz bir yoludur.

[tool.poetry.group.test.dependencies]
pytest = "^7.4.0"
pytest-cov = "^4.1.0"

[tool.poetry.group.lint.dependencies]
flake8 = "^6.1.0"
mypy = "^1.5.1"

Bu grupları kurmak için:

poetry install --with test --with lint

Veya sadece bir grubu:

poetry install --with lint

Paket Yayınlama (Publishing Packages)

Poetry, Python kütüphanelerinizi veya uygulamalarınızı PyPI’ya (Python Package Index) veya özel bir depoya yayınlamayı basitleştirir.

1. Dağıtım Paketleri Oluşturma:
Öncelikle projenizin dağıtım paketlerini (kaynak dağıtımı sdist ve tekerlek wheel) oluşturmanız gerekir:

poetry build

Bu komut, dist/ dizini altında .tar.gz ve .whl uzantılı dosyalar oluşturacaktır.

2. Paketi Yayınlama:
Paketinizi PyPI’ya (veya test PyPI’ya) yayınlamak için:

poetry publish
    # Test PyPI'ya yayınlamak için:
    # poetry publish -r testpypi

İlk kez yayınlıyorsanız, Poetry sizden PyPI kullanıcı adınızı ve şifrenizi isteyecektir. Güvenlik için API tokenları kullanmak daha iyidir. API token’ınızı yapılandırmak için:

poetry config pypi-token.pypi 

Poetry Eklentileri (Plugins)

Poetry, işlevselliğini genişletmek için eklentileri destekler. Örneğin, requirements.txt dosyası oluşturmanız gereken durumlar için bir eklenti mevcuttur.

1. Eklenti Kurulumu:

poetry self add poetry-plugin-export

Bu komut, poetry-plugin-export eklentisini Poetry’nin kendi sanal ortamına kurar.

2. requirements.txt Dışa Aktarma:
Eklentiyi kurduktan sonra, projenizin bağımlılıklarını requirements.txt formatına dışa aktarabilirsiniz:

poetry export -f requirements.txt --output requirements.txt --without-hashes

Bu, poetry.lock dosyasındaki bağımlılıklara göre bir requirements.txt dosyası oluşturur. --without-hashes seçeneği, hash değerlerini dahil etmez; bu, bazı durumlarda uyumluluk için gerekebilir.

Sonuç

Poetry, Python projelerinde bağımlılık yönetimi ve paketleme süreçlerini modernleştiren, geliştirici deneyimini önemli ölçüde artıran güçlü bir araçtır. Ubuntu 22.04 üzerinde kurulumu ve kullanımı oldukça basittir ve sağladığı tutarlılık, otomatik sanal ortam yönetimi ve sezgisel komut satırı arayüzü sayesinde Python geliştiricileri için vazgeçilmez bir yardımcı haline gelmiştir.

Bu makalede, Poetry’nin neden önemli olduğunu, nasıl kurulacağını ve temel bağımlılık yönetimi işlemlerini nasıl gerçekleştireceğinizi ayrıntılı olarak ele aldık. Ayrıca, farklı Python versiyonlarını yönetme ve bazı gelişmiş özellikler hakkında da bilgi verdik. Poetry’yi iş akışınıza entegre ederek, projelerinizin daha düzenli, tekrarlanabilir ve yönetilebilir olmasını sağlayabilir, böylece geliştirme sürecinizi daha verimli hale getirebilirsiniz. Python projelerinizde bağımlılık sorunlarıyla uğraşmak yerine, projenizin temel işlevselliğine odaklanmak için Poetry’nin sunduğu kolaylıklardan yararlanmanızı şiddetle tavsiye ederiz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version