Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

PyInstaller ile Uygulamamızı Python ve Başka Modüllerden Bağımsızlaştırmak

Konu, 'Python / Zope' kısmında Rahman Yazgan tarafından paylaşıldı.

  1. Rahman Yazgan

    Rahman Yazgan Daimi Üye

    Kayıt:
    29 Ocak 2008
    Mesajlar:
    820
    Beğenilen Mesajlar:
    0
    Meslek:
    Jr. Full Stack Developer (.NET / Java)
    Şehir:
    İstanbul
    http://www.pyinstaller.org/

    Kendi sitesi şu an çalışmıyor nedense, alternatif link:
    http://www.4shared.com/file/fmkFQRS1/pyinstaller-14.html

    PyInstaller Manual:
    http://www.pyinstaller.org/export/latest/tags/1.4/doc/Manual.html?format=raw

    PyInstaller Manual alternatif link(bu manual dosyası kendi sitesinden indirilmiştir):
    http://www.4shared.com/account/document/STIgBC2b/PyInstaller_Manual.html

    Zip dosyasını /home/user/ gibi kolayca ulaşabileceğiniz bir yere çıkartın. /home/user/pyinstaller olarak varsayıyorum.

    Kurulum
    Konsola sırasıyla aşağıdaki komutları verin:
    Kod:
    sudo apt-get install build-essential python-dev
    Pardusta bunu yapmaya gerek yok, pardus için aşağıdaki komutları uygulayın.
    PyInstaller 1.4'ten sonrası sürümler için pyinstaller/support/loader klasörü içinde run_d vb. dosyalar varsa aşağıdaki komutlar uygulanmaz.

    Kod:
    cd /home/user/pyinstaller/source/linux
    python Make.py
    make
    Bu komutlardan sonra pyinstaller/support/loader klasörü altında run_d dosyasının oluşup oluşmadığını kontrol edin. Bu dosya gerekli.
    (Windows kullanıcıları bu üstteki komutları uygulamadan aşağıdaki kısma geçebilirler)

    Şimdi son olarak aşağıdaki komutları verin:
    Kod:
    cd /home/user/pyinstaller
    python Configure.py
    Bu üstteki python Configure.py komutunu pyinstaller içinde değişiklik yaptığınız(misal upx programını eklemek gibi) zaman herhangi bir uygulama için aşağıdaki komutları kullanmadan önce bir defa kullanmak gerekir.

    Kullanım:
    Bir yada birçok dosyadan oluşan uygulamanızı kolaylık olsun diye /home/user/pyinstaller/program dizini altına ekleyin. Program dizinini kendiniz oluşturacaksınız.

    Uygulamamızı çalıştıran dosyamız Test.py olsun. Uygulamamız tam olarak /home/user/pyinstaller/program/Test.py konumunda.
    Şimdi aşağıdaki komutları uygulayın:

    Kod:
    cd /home/user/pyinstaller/
    python Makespec.py -F program/Test.py
    Buradaki -F komutuyla uygulamamızı tek dosya yapmak istediğimizi belirttik.

    Eğer Windows kullanıcıları exe'ye ikon eklemek istiyorsa komutu
    aşağıdaki gibi vermelidir:

    Kod:
    python Makespec.py -F --icon=C:/resim.ico program/Test.py
    Eğer ikon dosyanız pyinstaller içindeyse aşağıdaki komut işinizi görür:

    Kod:
    python Makespec.py -F --icon=resim.ico program/Test.py
    Bu ikon ekleme işi Windows içindir, Linux'ta ise dağıtıma göre farklılık gösteriyor.

    Ubuntu için, oluşan çalıştırılabilir dosyaya sağ tıklayıp özelliklere girilir ve oradan simgenin üzerine tıklayarak ikon olarak seçmek istediğiniz resmi seçersiniz.

    Pardus için, çalıştırılabilir dosyaya sağ tıklayıp özelliklere girilir ve Tür: Çalıştırılabilir dosya yazısının sağındaki ayar simgesine tıklanır, sonra oradan simgenin üzerine tıklayarak ikon olarak seçmek istediğiniz resmi seçersiniz.

    Linux'ta uygulamanızın ikonunun değişmemesi için eklediğiniz resmin konumu değişmemeli. O yüzden resminizi /usr/share/pixmaps gibi genel bir yere ekleyin. Varsayalım ki resmin konumu /home/user/program/resim.png olsun.

    Aşağıdaki komutla ikon için kullanılacak resmi /usr/share/pixmaps klasörüne resminizi ekleyebilirsiniz:

    Kod:
    sudo cp /home/user/program/resim.png /usr/share/pixmaps
    Daha çok ince ayar için pyinstaller manual'indeki "Create a spec file for your project" konusuna bakmalısınız:
    http://www.pyinstaller.org/export/latest/tags/1.4/doc/Manual.html?format=raw#id6

    Şimdi /home/user/pyinstaller/Test klasörü oluşmuş olmalı ve içinde Test.spec dosyası oluşmuş olmalı.
    Bu dosya py2exe ile setup yaparken hazırladığımız setup.py dosyası gibi aynı işlevi görüyor, yani bunu özelleştirebilirsiniz kendinize göre pyinstaller ın manual ine bakarak.

    Son olarak aşağıdaki komutu veriyoruz:
    Kod:
    python Build.py Test/Test.spec
    Bundan sonra uygulamamız /home/user/pyinstaller/Test/dist/ klasörü içinde tek dosya hâlinde oluşmuş olacak.
    3-4 bin satırlık resimleri uygulamaya gömülü bir PyQt uygulaması aşağı yukarı 13 mb lık bir dosya oluyor bu paketleme sonrası.
    Yukarıdaki işlemler sonucu Windows'ta exe oluşurken, Linux'ta /usr/bin deki gibi uzantısız çalıştırılabilir dosya oluşur.
    Eğer Linux'ta bu oluşan dosyayı çift tıklama ile çalıştıramazsanız konsolda ./Program_Adı şeklinde çalıştırabilirsiniz. (Neden bilmem ama Pardus'ta böyle bir sorun yaşadım.)

    Eğer PyQt deki gibi resimleri uygulamaya gömmek için kullandığımız dosya_adi.qrc dosyasından elde ettiğiniz dosya_adi_rc.py dosyasını da kullandıysak uygulamamız tamamen tek dosya olmuş olur, aksi hâlde o resimleri bu uygulamanın yanına veya arayüzden hangi konumu girerek ulaşılmasını istediyseniz o konuma eklemelisiniz. Yoksa uygulamanızdaki resimler görünmez.

    Aslında bu işleri görsel olarak yapabilen bir uygulama da hâli hazırda mevcut:
    http://code.google.com/p/gui2exe/

    Bu uygulamanın wxpython'ın 2.8.8.0 ve üzeriyle uyumlu olduğu GUI2Exe.py dosyasında belirtilmiş.
     
    Son düzenleme yönetici tarafından yapıldı: 16 Aralık 2010
  2. looke_1987

    looke_1987 Üye

    Kayıt:
    11 Temmuz 2009
    Mesajlar:
    193
    Beğenilen Mesajlar:
    0
    Meslek:
    Jeodezi ve Fotogrametri Mühendisi
    Şehir:
    Samsun
    Rahman Hocam exe yaptıktan sonra programı çalıştırdığımızda cmd de açılıyor bunu nasıl engelleyebiliriz.
     
  3. Metehan Özbek

    Metehan Özbek Aktif Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    380
    Beğenilen Mesajlar:
    0
    Şehir:
    Ankara
  4. looke_1987

    looke_1987 Üye

    Kayıt:
    11 Temmuz 2009
    Mesajlar:
    193
    Beğenilen Mesajlar:
    0
    Meslek:
    Jeodezi ve Fotogrametri Mühendisi
    Şehir:
    Samsun
    eyvallah metehan hocam hızır acil gibisin valla.sağol teşekkür ettim
     
  5. murat_asl38

    murat_asl38 Yeni Üye

    Kayıt:
    17 Aralık 2010
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    Bunu windowsta kullanamazmıyız veya windowsta ne kullanabiliriz ?
     
  6. Metehan Özbek

    Metehan Özbek Aktif Üye

    Kayıt:
    1 Mayıs 2008
    Mesajlar:
    380
    Beğenilen Mesajlar:
    0
    Şehir:
    Ankara
    Burda anlatılan zaten windows için anlatılıyor.
     
  7. murat_asl38

    murat_asl38 Yeni Üye

    Kayıt:
    17 Aralık 2010
    Mesajlar:
    4
    Beğenilen Mesajlar:
    0
    sudo apt-get install build-essential python-dev

    bu ve konsol kelimesi falan geçtiği için linux olduğunu düşündüm ve yollarda windowsa bnzemediği için neyse sorunu başka bi şekilde hallettim teşekkürler.
     
  8. Rahman Yazgan

    Rahman Yazgan Daimi Üye

    Kayıt:
    29 Ocak 2008
    Mesajlar:
    820
    Beğenilen Mesajlar:
    0
    Meslek:
    Jr. Full Stack Developer (.NET / Java)
    Şehir:
    İstanbul
    Bu satırdan itibaren hepsi için ortak kullanımdır:
    (Windows kullanıcıları bu üstteki komutları uygulamadan aşağıdaki kısma geçebilirler)

    Tabi python'a konsoldan direk ulaşabilmek için python.exe nin konumunu patha eklemiş olmalısınız ve
    /home/user/pyinstaller/ tarzı konumları kendinize göre düzenlemelisiniz; c:/pyinstaller/ gibi.
     
  9. berkantk

    berkantk Yeni Üye

    Kayıt:
    11 Haziran 2011
    Mesajlar:
    18
    Beğenilen Mesajlar:
    0
    Programı exe ye dönüştürdükten sonra çalıştıramama gibi bir sorun yaşayan oldu mu hiç ? Tek dosya haline getirdim Windows üzerinde ama exe yi çalıştıramadım, var mıdır bilen ?
     
  10. Rahman Yazgan

    Rahman Yazgan Daimi Üye

    Kayıt:
    29 Ocak 2008
    Mesajlar:
    820
    Beğenilen Mesajlar:
    0
    Meslek:
    Jr. Full Stack Developer (.NET / Java)
    Şehir:
    İstanbul
    Cmd den exe nin olduğu dizine gelin:
    cd nerede/bu/exe/
    program.exe

    şeklinde cmd den çalıştırmayı deneyin hatayı görmek için.
     
  11. berkantk

    berkantk Yeni Üye

    Kayıt:
    11 Haziran 2011
    Mesajlar:
    18
    Beğenilen Mesajlar:
    0
    İşin garibi herhangi bir hata çıktısı da vermiyor :garip: Çıktı bu :

    Kod:
    C:\Users\tayfun>cd C:\Users\tayfun\Desktop\pyinstaller\AGNO\dist
    
    
    C:\Users\tayfun\Desktop\pyinstaller\AGNO\dist>AGNO.exe
    
    
    C:\Users\tayfun\Desktop\pyinstaller\AGNO\dist>AGNO.exe
    
    
    C:\Users\tayfun\Desktop\pyinstaller\AGNO\dist>
     
  12. Rahman Yazgan

    Rahman Yazgan Daimi Üye

    Kayıt:
    29 Ocak 2008
    Mesajlar:
    820
    Beğenilen Mesajlar:
    0
    Meslek:
    Jr. Full Stack Developer (.NET / Java)
    Şehir:
    İstanbul
    Aynı şekilde uygulamanı cmd de çalıştırdığında herhangi bir hata alıyor musun?

    Cmd den ilgili .py/.pyw dosyasının bulunduğu dizine git ve şu komutu vererek çalıştır:
    C:/Python*/python.exe program.py

    Kaynak kodları paylaşırsan pyinstaller ile exe oluşturarak kontrol edebilirim.
     
  13. berkantk

    berkantk Yeni Üye

    Kayıt:
    11 Haziran 2011
    Mesajlar:
    18
    Beğenilen Mesajlar:
    0
    Programın kendisi de herhangi bir hata vermiyor, 4shared'e ekledim çünkü bir kaç dosya vardı, sağol zaman ayırdığın için, konsolsuz çalışan bir exe yapabilirsen çok minnettar kalıcam.
    http://www.4shared.com/file/h4DwyBFR/agno.html
     
  14. berkantk

    berkantk Yeni Üye

    Kayıt:
    11 Haziran 2011
    Mesajlar:
    18
    Beğenilen Mesajlar:
    0
  15. Rahman Yazgan

    Rahman Yazgan Daimi Üye

    Kayıt:
    29 Ocak 2008
    Mesajlar:
    820
    Beğenilen Mesajlar:
    0
    Meslek:
    Jr. Full Stack Developer (.NET / Java)
    Şehir:
    İstanbul
    Ben ona gerek görmedim. Kaynak koddaki şu importları sildim:
    Kod:
    import sip
    sip.setapi('QString', 2)
    sip.setapi('QVariant', 2)
    Konsolda şu komutları kullandım(resim.ico pyinstaller klasöründe):
    Kod:
    cd C:/pyinstaller
    C:/Python25/python.exe Makespec.py -F -w --icon=resim.ico program/AGNO.py
    C:/Python25/python.exe Build.py AGNO/AGNO.spec
    http://www.4shared.com/file/3fhzitFN/AGNO.html

    Exe'yi Windows XP de oluşturdum. Windows XP ve Windows 7 de test ettim, sorunsuz çalışıyor.
     
  16. berkantk

    berkantk Yeni Üye

    Kayıt:
    11 Haziran 2011
    Mesajlar:
    18
    Beğenilen Mesajlar:
    0
    Çok sağolun hocam indirdim, çalışıyor sorunsuz.