Python Kodlarını Derlemek

Posted on Cts 11 Nisan 2015 in Python, Modüller

Bu yazıda cx_Freeze modülünü kullanarak Python kodlarımızı nasıl çalıştırılabilir(*.exe, Linuxta uzantı yok) yapacağımızı öğreneceğiz. Bu sayede yazılımlarınızı fazladan Python kurulumu yaptırtmadan dağıtabileceksiniz. Ayrıca ortaya çıkan ürün portable uygulama olarakta kullanılabilir…

Öncelikle GNU/Linux kullanıcıları için bu işin nasıl yapılacağını anlatacağım…

Kullandığınız GNU/Linux dağıtımızın paket depolarında mevcut olması muhtemel bu modülü paket yöneticinizden cx_freeze olarak aratıp kurabilirsiniz(Pardusta adı python-cx_freeze, Ubuntu da cx-freeze).

Derlemek istediğiniz Python projenizin bulunduğu dizine girin ve bir konsol açın. Konsola "cxfreeze dosya_adi.py" komutunu verin. cxfreeze betiği kodlarınızı inceleyip gerekli modülleri tespit eder ve çalıştırılabilir bir dosya oluşturur. Bunu aynı dizinde dist adlı dizinde görebilirsiniz. Eğer projenizle ilgili resim, müzik veya ayar dosyalarınız varsa dağıtacağınız uygulamanıza bu dosyaları ilave edin…

Şimdi ise Windows kullanıcıları için nasıl kod derleneceğine gelelim… Windows kullanıcıları cx_Freeze modülünün Python sürümüne göre olan binary dosyasını indirip kurmaları gerekmektedir.

İşimizi kolaylaştırmak için Gui2exe adlı uygulamayı kullanacağız. Bu sayede görsel olarak setup.py dosyası hazırlayacağız. Gui2exe uygulamasını buradan indirebilirsiniz. Bu uygulama wx adlı gui modülü gerektirdiği için wxPython sitesinden Python sürümünüze göre olanın unicode destekli olanını indirip kurun. Artık Gui2exe uygulamasını çalıştırabiliriz.

Gui2exe yi arşivden çıkarıp GUI2Exe adlı klasöre giriyoruz ve GUI2Exe.py dosyasına çift tıklayıp uygulamayı çalıştırıyoruz…

Açılan ekranda File>New project… yoluna tıklayıp çıkan dialogda OK butonuna basıyoruz. Sol menüde bulunan My Projects in altındaki GUI2Exe Project e çift tıklıyoruz. Sağda açılan kısımdan cx_Freezeye tıklıyoruz.

Uygulama ekranının ortasında GUI2Exe Project adında bir sekme oluştu. Bu sekmede yer alan grupların ne işe yaradıklarına bakalım…

Target Classes(1):

  • Exe Kind başlığının altındaki satıra tıklayarak uygulamanızın konsol mu, yoksa guili bir uygulama mı olduğunu seçiyorsunuz.
  • Python Main Script başlığının altındaki satırın sağ tarafına tıklayarak *.exe ye dönüştüreceğiniz betiğin yolunu giriyorsunuz.
  • Executable Name kısmına *.exe dosyanızın adını yazıyorsunuz.
  • Version kısmına uygulamanızın versiyonunu, Description kısmına ise uygulamanızın ne işe yaradığını açıklayan bir yazı yazıyorsunuz.
  • Author kısmına Uygulamayı geliştirenin adını, Program Name kısmına ise uygulamanızın adını yazıyorsunuz.

Common Options:

  • Optimize kısmından 0-2 arası bir değer vererek Python kodlarının optimizasyonunu ayarlayabilirsiniz.

  • Compressed kısmından oluşturulacak *.zip dosyalarının sıkıştırılmasını sağlayabilirsiniz.

  • Dist Directory kısmını aktif ederek binary dosyaların oluşacağı dizinin adını değiştirebilirsiniz.

  • Packages grubunda ise sağ alt taraftaki + butonuna tıklayarak Python paketi ekleyebilirsiniz. Örneğin, PyQt veya pygame kullanarak bir uygulama geliştirdiyseniz bu gruptaki liste widgetine bu paketin adını yazmalısınız ki derlemeden sonra çalıştırdığınızda hata almayasınız.

  • Other Options grubunda ki Icon File kısmından *.exe dosyanızın gözükeceği resmi seçebilirsiniz.

Her şey tamamsa ve bir hata olduğunu düşünmüyorsanız sağ altta bulunan Compile butonuna tıklayarak derleme işlemine başlayabilirsiniz. Derleme başarılı olursa bir dialog çıkacak ve çalıştırmak isteyip istemediğinizi soracak. Başarılı bir derlemeden sonra *.exe ye çevirdiğiniz betiğin bulunduğu dizine girip binary dosyalarınıza ulaşabilirsiniz.

İsterseniz File menüsünden Export setup file… a tıklayarak oluşan setup.py dosyasını kaydedebilirsiniz.

Gui2exe kullanırken Türkçe karakter kullanırsanız derlemede hata verecektir. Türkçe karakter kullanmakta ısrarlıysanız setup.py yi dışarı aktararak dosyanın başına #-- coding:utf-8 -- satırını eklemelisiniz.

Aynı setup.py dosyasını GNU/Linux altında da kullanabilirsiniz. Ancak Gui2exe Windows altında çalıştığı için, GNU/Linux da setup.py dosyasını elle oluşturmanız gerekecektir. İsteyenler buradan setup.py dosyasına neler yazılabileceğini öğrenebilirler.

Ek: setup.py dosyasını python setup.py build komutuyla kullanıp binary oluşturabilirsiniz.

Windows kullanıcıları cxfreeze betiğini kullanmak isterlerse, Python’un kurulu olduğu dizinde ki Script dizinine girerek cxfreeze.bat dosyasını kullanabilirler. Bunun için cmd ile o dizine girip cxfreeze.bat dosya_yolu\dosya_adi.py gibi bir komutla aynı GNU/Linuxta ki gibi derleyebilirler. Yalnız gui kullanılan bir uygulamayı derliyorsanız programı çalıştırdığınızda cmd de açılacaktır…

Derleme de sorun yaşayanlar sorunları bildirirse çözmeye çalışırız…