Python Dosya Dağıtımı Oluşturmak

Karaca
Bilişim Hareketi
Published in
3 min readSep 19, 2021
Photo by Hitesh Choudhary on Unsplash

Merhabalar Python kodlamaya yeni başladığımızda github da setup.py modülünü görürüz. Tabii ilk gördüğümüzde anlamayız. :)

Bu kütüphaneinin benim bilidiğim kadarıyla üçşey yapar ;

1 -*Paket oluşturmak.

1.5*-Paketlerimizi test etmek. (tam yükleme yapmadan kodarımızı yürütmemize imkan tanır. )

2-* Paket yüklemek.

3-* Paket dağıtmak/ yayınlamak.

Biz python da nasıl paket oluşturulacağını inceleyeceğiz.

Hadi başlayalım.

Şimdi şöyle bir dizinimiz ve elemanları olsun.

EfsanePaket klasörünün içi. “setup.py “ dosyası bize paketleme yapacak.

“setup.py” içinde setup() fonksiyonu bulunduran bir modüldür. Tabii ki bu modülün kaynak dosyası setuptools kütüphanesidir.

ve onun içine dağıtıma sunacağımız paketin adı . yani tekrar “EfsanePaket” klasörü.

onun altında da modüllerimiz var.

Önemli Not: __init__ olduğuna dikkat ediniz. find_packages fonksiyonu arama yaparken alt dizinde “ ha bu dizinde bir şey yokmuş deyip es geçecek. Bu yüzden __init__.py dosyamızı muhakkak dizin içinde bulunduruyoruz.

Dosya yapısını gördüğümüze göre geri dönüp setup.py dosyasına bakalım.

setup.py :

try:
from setuptools import setup,find_packages
except:raise Exception("Bize böyle bir bilgi gelmedi/ lütfen ---> pip install setuptools ")setup(name="EfsanePaket", #paketlenece dosya adıversion="0.0.1", #uygulama versiyonauthor="Karaca Yılmaz", #yazar bilgileri geçiyorum ...author_email="karacaylmaz2016@gmail.com",description="Bu paket harikalar yaratır.", # kısa tanımlama#url="belki githubda paylşamak isterseniz oradan projeyle ilgili bir konuda ulaşmak isteyebilirler."packages=find_packages(), #paket altındaki tüm modülleri tarıyacak. ve bunu bir liste haline getirip packages değişkenine ekleyecek. install_requires=[ #bizim paketlerimizin bağımlılıklarını belirliyoruz. ve sihir gerçekleşiyor...'requests','beautifulsoup4',],python_requires='>=3', #yazdığımız paket belki 3 üstü sürümü destekleyecek bağımlılıklarımız varsa bunu belirtiriz ve paketimizi kullanacak olan kullanıcı eğer 3 den düşük bir python versiyonu kullanıyorsa paket yüklenmez hata fırlatılır.)

şimdi paketleyelim…

terminalimizi den setup.py dosyamızın olduğu dizine geliyoruz.

python setup.py sdist # yani sdist argümanıyla dağıtım yapmaya başla! diyorum

Aşağıdaki gibi bir çıktı aldıysak her şey yolunda .Biraz incelersek neler döndüğünü anlayabiliriz burayı geçiyorum.

Peki klasörümüzün içinde neler oldu ?

Bizim işimize yaracak olan şu anda dist klasörü ve içini açtığımızda paketlenmiş” EfsanePaket-0.0.1.tar” adlı bir gz uzantılı dosya buluyoruz.

Şimdi bunu kuralım pip aracıyla kuralım. Not python setup.py install ile kurabilirdim fakat pip ile kurmanın daha sorunsuz bir yöntem olduğunu düşünüyorum.

Terminaldeyiz. “EfsanePaket-0.0.1.tar” adılı dosyamızla aynı dizinde olduğumuzdan emin olalım.

pip install EfsanePaket-0.0.1.tar.gz

komutuyla paketimizi başarıyla yükledik.

şimdi paketimizi doğru bir dağıtım oluşturup oluşturmadığımızı kontrol edelim. Bu yüzden pip in üçüncü taraf kütüphanelerini kurduğu konuma gidiyoruz…

paketimiz başarıyla yüklendi.

Paketimizi terminalden test ediyorum.

evet paketimizi başarıyla yükledik en temel düzeye de bir paket oluşturma ve bunu test etmeyi gördük. Gerisi size kalmış.

Başka bir yazıda bunu pypi de yayınlamaya bakacağız . Şimdilik sağlıcakla kalın…

--

--

Karaca
Bilişim Hareketi

Adım Karaca, genelde backend ile ilgilenirim. Tarih,mantık, felsefe gibi şeyleri okumayı severim. Gördüğümü anlatırım bildiğimi iddia etmem. Elçiye zeval olmaz.