0Pricing
Python Academy · Ders

twine ile Yayımlama

PyPI'a yükleyin

twine ile Yayımlama, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Son Adım

dist/ içinde derlenmiş paket dosyalarınız var. Son adım, herkesin paketinizi pip install ile yükleyebilmesi için bunları PyPI'ye yüklemektir. Bunun için kullanılan standart araç twine'dır.

twine, HTTPS üzerinden güvenli bir şekilde yükleme yapar ve paket dosyalarını göndermeden önce doğrular.

twine'ı Yükleme

Bunu pip install twine ile yükleyin. twine küçük ve belirli bir amaca odaklanan bir araçtır: görevi yalnızca dist/ içindeki dosyaları doğrulamak ve yüklemektir. Herhangi bir derleme yapmaz.

Önce TestPyPI

Yüklemeleri prova etmek için ayrı bir deneme ortamı olan TestPyPI vardır. Gerçek dizini etkilemeden sorunları yakalamak için önce buraya yayımlayın. TestPyPI'deki adlar ve sürümler PyPI'dekilerden bağımsızdır.

twine upload --repository testpypi dist/* ile yükleyin.

Yüklemeden Önce Denetleme

twine check dist/*, üst verilerinizin ve uzun açıklamanızın PyPI'de doğru görüntülenip görüntülenmeyeceğini doğrular. Bunu her seferinde çalıştırın; aksi hâlde bozuk bir README açıklaması proje sayfanızda düz metin olarak görünebilir.

files = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in files:
    status = 'PASSED' if f.endswith(('.gz', '.whl')) else 'SKIP'
    print('check', f, '->', status)

Parola Yerine API Belirteçleri

Parolanız yerine PyPI hesabınızdan aldığınız bir API belirteci ile kimlik doğrulaması yapın. Kullanıcı adı olarak __token__, parola olarak da pypi- ile başlayan belirteci kullanın. Belirteçlerin kapsamını tek bir projeyle sınırlayabilir ve onları istediğiniz zaman iptal edebilirsiniz.

username = '__token__'
token = 'pypi-AgEIcHl...'
print('Username:', username)
print('Token starts with:', token[:5])
print('Never commit the token to git')

Kimlik Bilgilerini Saklama

Belirteçleri yeniden yazmaktan kaçınmak için onları bir ~/.pypirc dosyasında veya ortam değişkenlerinde (TWINE_USERNAME, TWINE_PASSWORD) saklayın. Bu dosyayı sürüm denetiminin dışında tutun ve yalnızca sizin okuyabileceğiniz şekilde ayarlayın.

PyPI'ye Yükleme

TestPyPI'de her şey yolunda görünüyorsa twine upload dist/* ile gerçek yayımlamayı yapın. Kısa süre içinde paketiniz dünyanın her yerinden yüklenebilir. Geri alma seçeneği yoktur: bir sürümü sildikten sonra aynı sürümü yeniden yükleyemezsiniz.

Sürümler Değiştirilemez

PyPI, yayımlanmış bir sürümün üzerine yazmanıza hiçbir zaman izin vermez. Yayımladıktan sonra bir hata bulursanız yeni bir sürüm yayımlamanız gerekir; örneğin yama sürümünü artırabilirsiniz. Bir daha çıkmaza girmemek için bu kuralı iş akışınıza dâhil edin.

published = {'1.0.0', '1.0.1'}
new_version = '1.0.1'
if new_version in published:
    print(new_version, 'already on PyPI - bump and rebuild')
else:
    print(new_version, 'is free to upload')

Yüklemeyi Doğrulama

Yüklemeden sonra her şeyin çalıştığını doğrulayın: yeni bir sanal ortam oluşturup pip install mytool komutunu çalıştırın, ardından paketi içe aktarın. Temiz bir ortamdan yükleme yapmak, derlemenin yakalayamadığı eksik dosyaları ve bağımlılık hatalarını ortaya çıkarır.

Güvenilir Yayımlama

Modern projeler güvenilir yayımlama sayesinde elle belirteç kullanmayı bırakabilir: PyPI, bir CI iş akışının (örneğin GitHub Actions) kimliğini doğrudan OpenID Connect aracılığıyla doğrular. Uzun süre geçerli bir gizli bilgi hiçbir yerde saklanmadığı için bu yöntem daha güvenlidir.

Yüklemeyi yine twine yapar; ancak kimlik bilgileri kısa süre geçerlidir ve çalışma zamanında oluşturulur.

Yayımlamaları Otomatikleştirme

Yaygın bir kurulumda, v1.0.0 gibi bir git etiketi gönderdiğinizde yayımlama başlatılır. CI iş akışı derleme yapar, twine check komutunu çalıştırır ve otomatik olarak yükler. Böylece etiketleme, bir sürümü yayımlayan tek işlem hâline gelir.

Bu yöntem yayımlamaları tutarlı kılar ve elle yapılan yükleme hatalarını ortadan kaldırır.

Hızlı Kontrol

Yayımlama bilginizi sınayın.

Özet

Bir paket yayımladınız:

  • pip install twine, ardından twine check dist/*
  • Gerçek yüklemeden önce TestPyPI'de prova yapın
  • Kapsamı sınırlandırılmış bir API belirteciyle (__token__) kimlik doğrulaması yapın; asla parola kullanmayın
  • twine upload dist/* yayımlama yapar; sürümler değiştirilemez, bu nedenle hataları düzeltmek için sürümü artırın
  • Temiz bir pip install ile doğrulayın

Sıkça Sorulan Sorular

“twine ile Yayımlama” dersi ücretsiz mi?

Evet — “twine ile Yayımlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“twine ile Yayımlama” dersinde ne öğreneceğim?

PyPI'a yükleyin Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“twine ile Yayımlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Proje Yapısı ve pyproject.toml
  2. build ile Derleme
  3. Sürümleme ve Üst Veriler
  4. twine ile Yayımlama
← Python Academy Sayfasına Dön