Python uygulaması için Windows yükleyici (PyInstaller'dan Setup.exe'ye)
Bir Python programını PyInstaller ile dondurun, ardından çıktıyı kısayolları ve kaldırıcısı olan gerçek bir Windows yükleyicisine sarın. Yükleyiciler için onedir neden onefile'dan iyidir ve hangi ayarlar önemlidir.
31 Ekim 2026 tarihinde güncellendi · 3 dk okuma
PyInstaller, bir Python programını Python kurulu olmadan çalışan bir Windows .exe dosyasına dönüştürür. Yapmadığı şey ise o programı kurmaktır: Başlat menüsünde giriş yok, kaldırıcı yok, Windows Ayarları'nda hiçbir şey yok. Bunun için PyInstaller çıktısını bir yükleyiciye sararsınız. İşte betikten Setup.exe'ye giden yolun tamamı.
1. adım: uygulamayı PyInstaller ile dondurun
PyInstaller'ı projenin ortamına kurun, ardından giriş betiğinizin bulunduğu klasörden derleyin:
pip install pyinstaller
pyinstaller --noconsole --onedir --name MyApp --icon app.ico main.py
Bayrakların işlevi:
--onedir(varsayılan), içindeMyApp.exeve kütüphaneleri barındıran bir_internal/klasörü olandist/MyApp/klasörünü üretir. Yükleyiciler için bunu kullanın.--onefile'dan daha hızlı başlar, çünkü her açılışta geçici bir klasöre hiçbir şeyin açılması gerekmez; ayrıca antivirüs sezgisel taramalarının dikkatini daha az çeker.--noconsole, grafik arayüzlü uygulamalarda (Tkinter, PyQt, Kivy vb.) siyah konsol penceresini gizler. Komut satırı araçlarında kullanmayın.--icon app.ico, simgeyi.exeiçine gömer. Yükleyici için de aynı.icodosyasını kullanın.--name MyApp, çalıştırılabilir dosyaya ve çıktı klasörüne ad verir.
Programınızın çalışma zamanında açtığı veri dosyaları (görseller, yapılandırma şablonları, modeller) --add-data "src;dest" ile veya .spec dosyasında eklenmelidir; aksi halde dist/MyApp/ içinde yer almazlar.
dist/MyApp/MyApp.exe dosyasını açın ve uygulamanın çalıştığını doğrulayın. Mümkünse dist/MyApp klasörünün tamamını Python kurulu olmayan başka bir Windows bilgisayara kopyalayıp orada da çalıştırın.
2. adım: çıktı klasörünü zipleyin
dist/MyApp/ klasörünün içeriğini zipleyin: MyApp.exe ve _internal/. build/ klasörünü, .spec dosyasını ve kaynak ağacınızı dahil etmeyin. Kurulan şey, bayt bayt, bu zip dosyasıdır.
3. adım: yükleyiciyi oluşturun
- Zip dosyasını ExeTup'a yükleyin.
MyApp.exedosyasını ana program olarak bulur. - Uygulama adını, sürümü, yayıncıyı ve isteğe bağlı olarak bir lisans girin.
- Tüm kullanıcılar (Program Files, yönetici onayı) veya geçerli kullanıcı (yönetici hakları gerekmez) seçeneğini belirleyin. İş arkadaşlarına dağıtılan araçlar çoğunlukla kullanıcı başına kurulumda daha iyi çalışır.
- Mimariyi seçin. PyInstaller, onu çalıştırdığınız Python için derler; 64 bit Python 64 bit uygulama üretir.
app.icodosyasını yükleyin, istediğiniz kısayolları açın ve derleyin.Setup.exedosyasını indirip Windows'ta test edin.
Python'a özgü notlar
- Antivirüs yanlış alarmları. PyInstaller paketleri, özellikle
--onefilederlemeleri, aşırı temkinli antivirüs sezgisel taramalarının sık hedefidir. Normal bir yükleyicinin içindeki, Program Files'a yerleştirilmiş bir onedir derlemesi diğer programlar gibi davranır ve işaretlenme olasılığı daha düşüktür. Kod imzalama daha da yardımcı olur. - Boyut. Bir Tkinter uygulaması 20–40 MB'tır; PyQt, NumPy veya PyTorch bunu çok daha yukarı taşır. Yükleyicinin LZMA sıkıştırması genellikle bunu yarıya indirir. Küçük tutmak için kullanmadığınız modülleri
--exclude-moduleile hariç tutun. - İlk açılış. Onedir'in açma işlemine ihtiyacı olmadığından ilk başlatma sonrakiler kadar hızlıdır.
- Güncellemeler. Daha yüksek sürüm numaralı yeni bir yükleyici dağıtın. Önceki sürümün üzerine kurmak dosyaları yerinde değiştirir.
- Konsol araçları. Komut satırı programı için makine başına kurulumu düşünün ve kullanıcılara kurulum klasörünü bildirin; yükleyici bunu
PATH'e eklemez.
Alternatifler
Nuitka ve cx_Freeze de içinde .exe bulunan bir klasör üretir; yükleyici adımı aynıdır. Yükleyici betiğini kendiniz yazmak isterseniz NSIS ve Inno Setup PyInstaller çıktısıyla çalışır.
Sık sorulan sorular
Yükleyici için --onefile mı --onedir mi kullanmalıyım?
--onedir. Yükleyici zaten kullanıcılara indirecekleri tek bir Setup.exe verir; dolayısıyla onefile'ın yavaş açılışına ve geçici klasöre açma bedeline katlanmak için bir neden yoktur. Onedir aynı zamanda PyInstaller'ın varsayılanıdır.
Kullanıcıların Python kurması gerekir mi?
Hayır. PyInstaller, Python yorumlayıcısını ve kütüphaneleri klasöre paketler; yükleyici de bu klasörü kullanıcının makinesine koyar.
Windows yükleyicim hakkında neden uyarı veriyor?
Yeni ve imzasız indirmeler, itibar kazanana kadar Microsoft SmartScreen'i tetikler. Neler yapabileceğinizi SmartScreen rehberinde bulabilirsiniz.
Örnek bir yapılandırma veya veri klasörü ekleyebilir miyim?
Evet. Ya PyInstaller'ın --add-data seçeneğiyle ekleyin ki _internal/ içine yerleşsin, ya da ExeTup'ın "Diğer dosyalar" adımında ekleyerek MyApp.exe yanına koyun.
İlgili rehberler
- Windows uygulamanız için Setup.exe nasıl yapılır (kodsuz)Setup.exe aslında ne yapar, nasıl hazırlanır ve kurulum betiği yazmadan uygulama klasörünüzü dakikalar içinde profesyonel bir kurulum programına nasıl dönüştürürsünüz.
- Bir .exe dosyasını Windows yükleyicisine dönüştürme (exe'den Setup.exe'ye)Tek bir .exe dosyasını ya da içinde .exe bulunan bir klasörü, yükleyici betiği yazmadan, kısayolları ve kaldırıcısı olan gerçek bir Windows yükleyicisine nasıl dönüştürürsünüz.
- '"Windows bilgisayarınızı korudu": SmartScreen uyarısı ne anlama gelir ve nasıl kaldırılır'Windows'un yeni bir yükleyicide neden "bilinmeyen yayıncı" uyarısı gösterdiği, kullanıcıların neye tıklayabileceği ve kod imzalama ile itibarın uyarıyı nasıl ortadan kaldırdığı.