PYTHON TO EXE

PyInstaller ile Python Scriptlerinizi Çalıştırılabilir Dosyalara Dönüştürün

Python, esnekliği ve gücü sayesinde birçok geliştiricinin favori programlama dillerinden biri haline gelmiştir. Ancak, bir projeyi paylaşırken en sık karşılaşılan zorluklardan biri, kullanıcıların bilgisayarlarında Python'un yüklü olup olmamasıdır. Peki, Python scriptlerinizi bağımsız bir çalıştırılabilir dosyaya dönüştürerek bu sorunu nasıl çözebilirsiniz?

Bu yazıda, PyInstaller kullanarak Python projelerinizi .exe dosyalarına nasıl dönüştüreceğinizi anlatacağım.

Github'a kısa süre içerisinde eklenir: github.com/Mefamex/

Açılış tarihi: 22.12.2024 || Son güncelleme tarihi: 13.02.2025

1) PyInstaller ?

  • Python scriptlerini bağımsız, çalıştırılabilir olarak exe'ye dönüştüren bir araçtır.
  • Python yüklü olmayan bilgisayarda projeni çalıştırabilirsin.
  • Tüm bağımlılıklar (kütüphaneler vs) ve kod tek bir peket (veya klasör) haline gelir.

2) PyInstaller Kurulumu

Pip ile kolay şekilde kurulumunu yapabiliriz.

pip install PyInstaller

* pyinstaller ile PyInstaller aynı modül değildir.

3) Python Scriptini Exe Formatına Dönüştürme

PyInstaller --onefile proje.py Bu komut projemizi tek bir dosya olarak exe formatına çevirir.

  • --onefile : Tüm bağımlılıkları tek bir .exe dosyasına toplar.

  • proje.py : Dönüştürmek istediğin Python dosyasının adı.

4) Çıktı Dosyaları

Dönüştürme işlemi tamamlandığında bizim için asıl gerekli olan .dist/*exe dosyasıdır. ayrıca aşağıdaki yapılar da oluşur:

  • dist/ : Çalıştırılabilir dosya (proje.exe) burada yer alır.

  • build/ : Geçici derleme dosyaları burada tutulur.

  • proje.spec : PyInstaller’ın ayarlarını içeren dosya.

  • __pycache__/ : Önbellek dosyalarını içerir.

5) PyInstaller Seçenekleri

PyInstaller ile çeşitli seçenekler kullanarak .exe dosyanı özelleştirebilirsin:

  • --onefile Tek bir .exe dosyası oluşturur.

  • --noconsole Konsol penceresini gizler (GUI uygulamaları için).

  • --windowed Konsol penceresini gizler (GUI uygulamaları için uygundur). GUI Uygulamaları: tkinter gibi kütüphaneleri içeren GUI uygulamalarında --windowed seçeneğini eklemeniz önemlidir. Aksi takdirde, bir terminal penceresi açılır.

  • --name=ciktiDosyanaisimVer Çıktı dosyasına özel bir isim verir.

  • --icon=myicon.ico Çalıştırılabilir dosyaya bir ikon ekler.

  • --clean Önceki derleme dosyalarını temizler.

  • --add-data Ek dosyaları veya klasörleri dahil eder (resimler, veriler vb.).

  • --hidden-import PyInstaller'ın algılayamadığı kütüphaneleri manuel olarak ekler.

Örnek: Özelleştirilmiş EXE Oluşturma

Bu komutla daha kapsamlı bir .exe dosyası oluşturabiliriz:

PyInstaller --onefile --noconsole --icon=ikon.ico --name=BenimProgramim proje.py

6) Ek Dosyaları Dahil Etme

Eğer projen resim, metin dosyaları veya başka bağımlı dosyalar kullanıyorsa, onları da dahil etmelisin:

Örnek: Bir resim dosyasını projeye dahil etmek için: PyInstaller --onefile --add-data "resim.png;." proje.py

Açıklama:
    resim.png Dahil etmek istediğin dosya.
    . : Dosyanın dahil olacağı klasör (şu anki dizin).

Not: Windows'ta dosya yolları için ; kullanılır. Linux/Mac'te : kullanılır.

7) Hidden Import (Gizli Kütüphaneler)

Bazı kütüphaneler, PyInstaller tarafından otomatik algılanmayabilir (örneğin pandas, tkinter vb.).

Bu durumda --hidden-import seçeneğini kullanmalısın:
PyInstaller --onefile --hidden-import=pandas proje.py

8) PyInstaller’ın spec Dosyasını Kullanma

İlk çalıştırmada .spec adında bir dosya oluşturulur. Bu dosyayı düzenleyerek daha gelişmiş ayarlar ekleyebilirsin.

a = Analysis(['proje.py'],
    pathex=[],
    binaries=[],
    datas=[('resim.png', '.')],  # Ek dosya ekleme
    hiddenimports=['pandas'],   # Gizli kütüphane ekleme
    hookspath=[],
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=None,
    noarchive=False)    

PyInstaller'ı .spec dosyasını kullanarak çalıştırmak için:

PyInstaller proje.spec