Pythontr

husonet | Tarih: 23.03.2011

python setup.py dosyası hazırlanması

Selamun Aleykum,

sörf ederken çok güzel bir makale gördüm ve notlarıma eklemek istedim lazım olacağına inanıyorum


Gönderen Oğuzhan Eroğlu

Bu yazımızda python un distutils (distutils.core.setup) modülü ile kurulum betiği hazırlayacağız...

distutils modülü öntanımlı olarak python ile gelmektedir.

Öncelikle setup.py den biraz bahsedeilm: çoğu python uygulaması distutils ile kurulum betikleri hazırlar, bunun nedeni distutils in sorunsuz, kolay ve tabi ki python ile birlikte geliyor olması diyebiliriz. :D

Şimdi betiğimizi yazalım:



# -*- coding: utf-8 -*-
# setup.py denemesi...

from distutils.core import setup # distutils.core modülündeki setup metodununu çağırıyoruz...

# simge gibi şeyleri tanımlıyoruz...
datas = [("share/applications", ["data/kxmp.desktop"]), ("share/pixmaps", ["kxmp/kxmp.png"])]

setup(name = "kxmp",
version = "0.1.2",
description = "Graphical xm player...",
author = "Oğuzhan Eroğlu",
author_email = "oguzhan@oguzhaneroglu.com",
url = "http://kxmp.googlecode.com",
packages = ["kxmp"],
data_files = datas,
scripts = ["data/kxmp"])



  • Şimdi de kodu açıklayalım:
  • setup argumanları:
  • name: Uygulamanın adı.
  • version: Uygulamanın sürüm numarası (str olmalı)
  • description: Uygulamanın ne yaptığını anlatan kısa bir açıklama.
  • author: Yazarın adı.
  • author_email: Yazarın e-posta adresi.
  • url: Uygulamanın proje sayfası.
  • packages: Uygulamanın kaynak kodlarının bulunduğu yani kurulacak dizinler (liste olmalı)
  • data_files: Uygulamanın çalıştırma dosyası, .desktop gibi dosyaların bulunduğu dizin. (liste olmalı)
  • scripts: /usr/bin altına gidecek betikler. (liste olmalı)


burdan önemli noktalara değinecek olursak:
packages, data_files, scripts argumanları liste olmalıdır, çünkü bu tür dizinler birden fazla da olabilir.

datas değişkenini açıklayacak olursak:
yapılan işlem şu liste içerisine bilgiler ("hedefdizin", [kaynakdizinler]) şeklinde veriliyor.

ve dikkat ettiyseniz setup hep /usr/ altında çalışır yani /usr/share/applications yazmak yerine share/applications yazarız.

Yaptığı şeye değinecek olursak çok basit kodlarınızı site-packages dizinine atıyor... yani uygulamayı çalıştıracak betik sadece import a dese yeterli (a burada packages argumanına verilen dizinlerden biri).

İyi çalışmalar...


Kaynak: http://pythontr.blogspot.com/2008/11/setuppy-dosyas-hazrlamak.html