# Python Modüllerini Dağıtma

E-posta

  distutils-sig@python.org

Popüler bir açık kaynak geliştirme projesi olarak Python, yazılımlarını diğer Python geliştiricilerinin açık kaynak lisans koşulları altında kullanmasını sağlayan, aktif destek sağlayan katılımcı (contributor) ve kullanıcı topluluğuna sahiptir.

Bu, Python kullanıcılarının, ortak havuza kendi çözümleriyle potansiyel olarak katkıda bulunmanın yanı sıra, ortak (ve hatta bazen nadir!) sorunlara karşı halihazırda oluşturdukları çözümlerden yararlanarak, Python kullanıcılarının etkin bir şekilde paylaşımda bulunmalarına ve işbirliği yapmalarına olanak tanır.

Bu kılavuz, sürecin dağıtım bölümünü kapsar. Diğer Python projelerini kurmaya yönelik bir kılavuz için installation guide ‘e bakın.

Not

Kurumsal kullanıcılar için, birçok kuruluşun açık kaynaklı yazılımları kullanma ve bunlara katkıda bulunma konusunda kendi politikaları olduğunu unutmayın. Python ile sağlanan dağıtım ve kurulum araçlarını kullanırken lütfen bu tür politikaları dikkate alın.

## Anahtar terimler

- Python Package Index , diğer Python kullanıcıları tarafından kullanıma sunulan açık kaynaklı lisanslı paketlerin bir yazılım deposudur.

- Python Packaging Authority , standart paketleme araçlarının, ilgili meta verinin ve dosya formatı standartlarının bakımından ve geliştirilmesinden sorumlu geliştiriciler ve dokümantasyon yazarları grubudur. Hem GitHub hem de Bitbucket üzerinde çeşitli araçlar, dokümantasyon ve sorun izleyicileri bulundururlar.

- `distutils`, Python standart kitaplığına ilk kez 1998 yılında eklenen orijinal derleme ve dağıtım sistemidir. `distutils` ‘in doğrudan kullanımı aşamalı olarak kaldırılırken, halen mevcut paketleme ve dağıtım altyapısının temelini atmıştır. Yalnızca standart kitaplığın bir parçası olmakla kalmaz, adı başka şekillerde de yaşar (Python paketleme standartları geliştirmeyi koordine etmek için kullanılan posta listesinin adı gibi).

- setuptools ilk olarak 2004’te yayınlanan `distutils` için (büyük ölçüde) bir eklentidir. Değiştirilmemiş `distutils` araçlarına göre en dikkate değer ilavesi, diğer paketlere bağımlılıkları bildirme yeteneğiydi. Şu anda, çok çeşitli Python sürümlerinde daha yeni paketleme standartları için tutarlı destek sunan `distutils` ‘e daha düzenli olarak güncellenen bir alternatif olarak önerilmektedir.

- wheel (bu bağlamda), `bdist_wheel` komutunu `distutils`/setuptools dizinine ekleyen bir projedir. Bu, Python kütüphanelerinin, (ikili uzantıları içerenlerin bile) bir sisteme yerel olarak kurulmasına gerek kalmadan kurulmasına izin veren bir çapraz platform ikili paketleme biçimi (“wheels” veya “wheel files” olarak adlandırılır ve PEP 427 ‘de tanımlanır) üretir.

## Açık kaynak lisanslama ve işbirliği

Dünyanın çoğu yerinde, yazılım otomatik olarak telif hakkı kapsamındadır. Bu, diğer geliştiricilerin yazılımı kopyalamak, kullanmak, değiştirmek ve yeniden dağıtmak için açık izne ihtiyaç duyduğu anlamına gelir.

Açık kaynak lisanslama, bu tür bir izni nispeten tutarlı bir şekilde açıkça vermenin bir yoludur ve geliştiricilerin çeşitli sorunlara ücretsiz olarak ortak çözümler sunarak verimli bir şekilde paylaşmasına ve işbirliği yapmasına olanak tanır. Bu, birçok geliştiricinin kendi özel durumlarına nispeten benzersiz olan sorunlara odaklanmak için daha fazla zaman harcamasına izin verir.

Python ile sağlanan dağıtım araçları, geliştiricilerin, isterlerse bu ortak yazılım havuzuna kendi katkılarını yapmalarını makul ölçüde basit hale getirmek için tasarlanmıştır.

Aynı dağıtım araçları, yazılımın açık kaynaklı yazılım olarak yayınlanıp yayınlanmadığına bakılmaksızın, bir kuruluş içinde yazılımı dağıtmak için de kullanılabilir.

## Araçları yükleme

Çekirdek geliştirme ekibi, Python’un eski sürümlerinde bile tutarlı bir şekilde çalışan standart araçlara sahip olmanın önemli olduğunu keşfettiğinden, standart kütüphane, modern Python paketleme standartlarını destekleyen derleme araçlarını içermez.

Şu anda önerilen derleme ve dağıtım araçları, komut satırında `pip` modülü çağrılarak kurulabilir:

    python -m pip install setuptools wheel twine

Not

POSIX kullanıcıları için (macOS ve Linux kullanıcıları dahil), bu talimatlar bir virtual environment kullanıldığını varsayar.

Windows kullanıcıları için bu talimatlar, Python’u kurarken sistem PATH ortam değişkenini ayarlama seçeneğinin seçildiğini varsayar.

Python Packaging Kullanıcı Kılavuzu, currently recommended tools hakkında daha fazla ayrıntı içerir.

## Python Paketleme Kullanım Kılavuzunu Okumak

Python Paketleme Kullanıcı Kılavuzu, bir proje oluşturma ve yayınlamayla ilgili çeşitli temel adımları ve öğeleri kapsar:

- (en) Proje Yapısı ;

- (en) Projeyi inşa etmek ve paketlemek ;

- (en) Projeyi Python Paket Dizinine yükleme ;

- (en) .pypirc dosyası.

## Nasıl yaparım…?

Bunlar, bazı genel görevler için hızlı yanıtlar veya bağlantılardır.

### … projem için bir isim seçer misin?

Bu kolay bir başlık değil, ancak işte birkaç ipucu:

- adın zaten kullanımda olup olmadığını görmek için Python Paket Dizini’ni kontrol edin

- Bu ada sahip bir proje olup olmadığını görmek için GitHub, Bitbucket vb. gibi popüler barındırma sitelerini kontrol edin.

- düşündüğünüz isim için bir web aramasında ne çıktığını kontrol edin

- kullanıcıların yazılımınızı ararken bulmasını zorlaştırabileceğinden, özellikle birden çok anlamı olan yaygın sözcüklerden kaçının

### … ikili uzantılar oluşturup dağıtmak?

Bu aslında oldukça karmaşık bir konudur ve tam olarak neyi başarmayı amaçladığınıza bağlı olarak çeşitli alternatifler mevcuttur. Daha fazla bilgi ve öneriler için Python Paketleme Kullanıcı Kılavuzuna bakın.

Ayrıca bakınız

Python Paketleme Kullanıcı Kılavuzu: İkili Uzantılar