Ana içeriğe atla

Bir Python Komut Dosyasını Exe Dosyasına Dönüştürmenin Üç Yöntemi

Yürütülebilir dosyanın ne olduğunu ve bir Python komut dosyasını PyInstaller, Nuitka ve auto-py-to-exe kullanarak .exe dosyasına nasıl dönüştüreceğinizi öğrenin.
Güncel 22 Nis 2026  · 7 dk. oku

Bu yazıda, Python dosyanızı yürütülebilir bir dosyaya dönüştürmeyi gerekçelendiren bazı senaryoları ele alacağım. Ayrıca üç Python kütüphanesi kullanarak bir Python dosyasını yürütülebilir dosyaya nasıl dönüştüreceğinizi göstereceğim: Pyinstaller, Nuitka ve auto-py-to-exe.

Bu öğreticiyi takip etmek için Github deposunu klonlayın.

Neden Python’u .exe’ye Dönüştürelim?

Yürütülebilir dosyalar – .exe uzantısıyla kaydedilen dosyalar – Windows işletim sistemi olan bilgisayarlarda yazılım uygulamalarını yüklemek veya çalıştırmak için kullanılır. Bir Windows bilgisayarın bir uygulamayı çalıştırmasını sağlayan dosya .exe dosyasıdır.

Bir Python programını yürütülebilir bir dosyaya dönüştürmek istemenizin birkaç nedeni olabilir. Birkaçına bakalım:

Kötü amaçlı faaliyetler

Ne yazık ki internette bazı kişiler, başkalarının cihazlarını enfekte etmek ve bilgilerini çalmak için kötü amaçlı yazılım yaymayı sever. Bu kişilere karşı koymanın bir yolu, onların tuzaklarına düşmemektir – yani güvenilir bir kaynaktan gelmeyen .exe dosyalarını körü körüne indirmemek veya açmamak gerekir.

Erişilebilirlik

Bir Python dosyasını yürütülebilir dosyaya dönüştürmek istemenizin bir başka nedeni de bir uygulamayı diğer kullanıcılarla paylaşmaktır. Tipik bir Python programı, programın çalışabilmesi için başka bir kullanıcının yüklemesi gereken çeşitli bağımlılıklardan oluşabilir. Peki ya kişi kod yazmayı bilmiyorsa? Bu gibi durumlarda, bir uygulamayı kullanmadan önce kullanıcının kod yazmayı öğrenmesini beklemek makul olmayabilir. Bir Python dosyasını yürütülebilir dosyaya dönüştürmek, kullanıcıların Python bilmeden programınıza erişmesini sağlar.

Kaynak kodunu koruma

Kod yazmayı biliyor olsalar bile, Python dosyasını yürütülebilir dosyaya dönüştürmek, kodunuzun çalınmasını önlemek için iyi bir seçenek olabilir. Yürütülebilir bir dosya, kaynak kodunuzun derlenmiş bir sürümünü oluşturduğu için kodun çalınmasını zorlaştırır; bu sürüm, asıl kaynak koda kıyasla anlaşılması daha güçtür.

İş zamanlama

Bilgisayarınızda belirli bir zamanda bir .exe dosyasını çalıştıracak bir işi zamanlamak da isteyebilirsiniz.

Bir Python Komut Dosyası .exe Dosyasına Nasıl Dönüştürülür 

Artık .exe dosyalarının ne olduğunu ve neden bir Python dosyasını .exe dosyasına dönüştürmek isteyebileceğinizi bildiğinize göre, bunu Python’da nasıl yapacağımıza bakalım. Bu bölümde üç çerçeveyi ele alacağız: pyinstaller, nuitka ve auto-py-to-exe.

Aklınızda bulundurmanız gereken bir nokta,  auto-py-to-exe araçının Python 3.11 ve sonrasında bilinen uyumluluk sorunlarına sahip olduğudur; genellikle yalnızca Python 3.10’a kadar güvenilirdir; bunun için de belirli yeni sürümler ve dikkatle eşleştirilmiş bağımlılıklar gerekir.

Öyleyse başlayalım.

Betik hazırlığı

Bu demonstrasyonda New York City Airbnb açık verileri veri kümesi kullanılacaktır. 

Veri bilimciler bir veri kümesini analiz edebilmeden önce, verilerin kullandıkları araçlarla uyumlu olacak şekilde biçimlendirilmesi gerekir. Bu nedenle doğrulama şeması oluşturmak, her alan için geçerli tüm doğrulamaları deklaratif olarak tanımlar. Bu süreç oldukça tekrarlı olabilir. Veri bilimcilerimizin tekrarlı işlerle uğraşmasını önlemek için periyodik olarak çalışan otomatik bir doğrulama betiği oluşturduk. 

Not: Betiğinizin veri okuması gerekiyorsa göreli yolları kullanırken son derece dikkatli olun. Yürütülebilir dosyanızın beklenildiği gibi çalıştığından emin olmak için mutlak yolları kullanmak daha iyidir. 

import pandas as pd
from pandas.api.types import CategoricalDtype

def perform_validation(filename:str):
    """
    A function to validate inputs for NYC Airbnb Open data.
    """
    path_to_data = "../.."
    data = pd.read_csv(f"{path_to_data}{filename}")



    # Convert neighbourhood_group to type category
    neighbourhood_group_to_cat = CategoricalDtype(
        categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"],
        ordered=False
        )
 
    data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat)

    # Convert room_type to type category
    room_type_to_cat = CategoricalDtype(
        categories=["Entire home/apt", "Private room", "Shared room"],
        ordered=False
    )

    data["room_type"] = data["room_type"].astype(room_type_to_cat)

    # Convert last_review to datetime
    data["last_review"] = pd.to_datetime(data["last_review"])

    # Minimum nights a person can stay is one night
    assert data["minimum_nights"].min() >= 1

    # Minimum number of reviews is 0
    assert data["number_of_reviews"].min() >= 0
 
    # Minimum number of reviews per month
    assert data["reviews_per_month"].min() >= 0.00

    # Minimum amount of listings per host
    assert data["calculated_host_listings_count"].min() >= 1

    # Number of days when listing is available for books
    # Could be 0 if tennant has long term booking
    assert data["availability_365"].min() >= 0

    # Save validated data
    data.to_csv("validated_ab_nyc_2019.csv", index=False)

if __name__ == "__main__":
    # User inputs filename
    filename = input("Enter filename: ")
 
    # Ensure it's a string
    if not filename.isalpha():
        filename = str(filename)
 
    # Automated validation
    perform_validation(filename)

Not: Bu betiği pyinstaller, nuitka ve auto-py-to-exe dizinlerine kopyalayıp yapıştırdık. 

# Directory structure
|   AB_NYC_2019.csv
|  
+---auto_py_to_exe
|   |   requirements.txt
|   |   validation.py         
+---pyinstaller
    |   requirements.txt
    |   validation.py

Her dizinin, gereksinimlerin kurulduğu kendine ait bir sanal ortamı vardır: bkz. pyinstaller gereksinimleri veya auto-py-to-exe gereksinimleri. Kodu adım adım takip ediyorsanız, pyinstaller ve auto-py-to-exe dizinlerinde birer sanal ortam oluşturduğunuzdan emin olun. 

Yüksek seviyede, yukarıdaki betik bir fonksiyon içerir – Python’da fonksiyon yazma hakkında daha fazla bilgi edinin – bu fonksiyon bir veri kümesini okur ve ardından verideki belirli alanların beklenen biçimini tanımlar. Bir sonraki adım, bu Python betiğini düzenli olarak çalıştırılabilecek ve biçimlendirilmiş bir veri kümesi üretebilecek bir yürütülebilir dosyaya dönüştürmektir. 

Yöntem 1: Pyinstaller

Pyinstaller, bir Python dosyasını terminalinizden hızlıca yürütülebilir dosyaya dönüştürmenizi sağlar. Sanal ortamınızı oluşturup betiğinizin gereksinimlerini (pyinstaller dahil) kurduktan sonra, terminali açıp dönüştürmek istediğiniz Python dosyasının bulunduğu dizine gidin. 

Bir sonraki adım, aşağıdaki komutu çalıştırmaktır: 

pyinstaller --onefile validation.py

Öncelikle bir dizi günlük görüntülenecek; sonuncusunda “başarıyla tamamlandı” benzeri bir ifade göreceksiniz – yürütülebilir dosya başarıyla oluşturulduysa. 

executable file being created

Şekil 1: Yürütülebilir dosyanın oluşturulduğunu ve başarılı şekilde tamamlandığını gösteren günlükler.

Bu çalıştırmanın tamamlanması, Python dosyasının bulunduğu dizinde build ve dist adlı iki yeni dizin oluşturacaktır. dist dizininde validation.exe betiğini bulacaksınız.

validation.exe on a dataset

Şekil 2: validation.exe’nin bir veri kümesi üzerinde çalıştırılmasını gösteren bir GIF.

Betik çalıştırmak için dosyaya çift tıklamanız yeterlidir. Bu, doğrulamayı çalıştırmak istediğiniz verinin dosya adını girmenizi isteyen bir konsol açacaktır. Dosya adını girdikten sonra konsol kapanacak ve doğrulanmış veri, validation.exe dosyasıyla aynı dizinde oluşturulacaktır – bkz. Şekil 2. 

Yöntem 2: Nuitka

Nuitka dikkate değer bir başka yaklaşımdır. Python betiğinizi Python yorumlayıcısı ile paketleyen PyInstaller’ın aksine, Nuitka Python kodunuzu C koduna derler. Bunun sonucunda daha iyi kaynak kod koruması, potansiyel olarak daha hızlı çalıştırma ve genellikle daha küçük dosya boyutları elde edilir. Dezavantajı, daha uzun derleme süresi ve daha fazla kurulum karmaşıklığıdır.

Kurulum ve Ayar

Bir sanal ortam oluşturup pip install nuitka ile Nuitka’yı kurduktan sonra, sisteminizde bir C derleyicisinin mevcut olduğundan emin olmalısınız. Hangi derleyiciye ihtiyaç duyduğunuz, işletim sisteminize bağlıdır:

  • Windows: Visual Studio web sitesinden Microsoft Visual C++ Build Tools’u (ücretsiz) indirin ve kurun veya MinGW kullanın

  • macOS: xcode-select --install ile Xcode Komut Satırı Araçlarını kurun

  • Linux: GCC genellikle önceden kurulu gelir; değilse paket yöneticinizle kurun

Kurulumdan sonra Nuitka derleyicinizi otomatik olarak algılar. Sorun yaşarsanız derleyicinin sistem PATH içinde olduğundan emin olun.

Doğrulama Betiğini Nuitka ile Dönüştürme

Aynı NYC Airbnb doğrulama betiğini, PyInstaller ve auto-py-to-exe’de yaptığımız gibi Nuitka ile derleyelim. Betiğimizi yürütülebilir dosyaya derlemek için şunu çalıştırın:

python -m nuitka --onefile --follow-imports --include-package=pandas validation.py

Her bayrağın ne yaptığına bakalım:

  • --onefile: Tek bir yürütülebilir dosya oluşturur (çok sayıda dosya ve bağımlılıktan oluşan bir dizin yerine)

  • --follow-imports: Betiklerinizin içe aktardığı tüm modülleri otomatik olarak dahil eder

  • --include-package=pandas: pandas paketini açıkça dahil eder (bazı paketler otomatik olarak algılanmayabilir; bu, paketlendiğinden emin olur)

PyInstaller yaklaşık 30 saniyede tamamlanırken, Nuitka belirgin ölçüde daha uzun sürecektir — genellikle kod karmaşıklığına ve sistem hızına bağlı olarak 5–15 dakika. Terminalde C derleme aşamasındaki ilerlemeyi gösteren çıktılar görürsünüz.

Tamamlandığında, yürütülebilir dosyanın oluşturulduğunu belirten bir başarı iletisi görürsünüz. Derlenen yürütülebilir dosya, validation.py dosyasıyla aynı dizinde oluşturulur.

validation.exe dosyasına çift tıklayın veya komut satırından çalıştırın. PyInstaller’da olduğu gibi, bir konsol penceresi açılarak sizden bir dosya adı girmeniz istenir. AB_NYC_2019.csv yazıp enter’a bastığınızda doğrulama çalışır, konsol kapanır ve yeni validated_ab_nyc_2019.csv dosyası aynı dizinde oluşturulur; tıpkı PyInstaller sürümünde olduğu gibi.

Yöntem 3: auto-py-to-exe

auto-py-to-exe kullanarak yürütülebilir bir dosya oluşturmanın ilk adımı, aşağıdaki komutla aracı çalıştırmaktır: 

auto-py-to-exe 

Bu, Python dosyamızı yürütülebilir dosyaya dönüştürmemize yardımcı olacak bir grafik kullanıcı arayüzü (GUI) döndürmelidir. 

graphical user interface

Şekil 3: auto-py-to-exe komutu çalıştırıldıktan sonra döndürülen grafik kullanıcı arayüzü. 

Not: Çalışmıyorsa, auto-py-to-exe dizininde bir sanal ortam oluşturduğunuzdan ve sanal ortamınıza şu komutla requirements.txt’yi kurduğunuzdan emin olun: pip install -r requirements.txt.

GUI’de doldurmamız gereken birkaç alan vardır. Her birine bakalım ve özetleyelim: 

  • Belirli Konum: Bu alanda, yürütülebilir dosyaya dönüştürmek istediğiniz Python dosyasının betik konumunu eklemelisiniz.  
  • Tek Dosya: Burada tek bir dizin mi yoksa dosya mı oluşturmak istediğinizi seçersiniz. Tek bir dizin, betiğinizin çalıştırılması için gereken tüm bağımlılıkları ve bir yürütülebilir dosyayı içerirken, “Tek Dosya”yı seçmek tek bir yürütülebilir dosya oluşturur. 
  • Konsol Penceresi: “Konsol Tabanlı” ya da “Pencere Tabanlı” seçimleri, betiğinizin ne döndürdüğüne bağlıdır. Örneğin, yukarıda oluşturduğumuz betik kullanıcıdan bir dosya adı girmesini istemektedir. Bu nedenle, yürütülebilir dosya çalıştırıldıktan sonra konsolun açılacağı “Konsol Tabanlı” çözüm önerilir. Yürütülebilir dosya çalıştırıldıktan sonra konsol çıktılarını göstermek gerekmiyorsa “Pencere Tabanlı” iyi bir seçenektir. 

Ayrıca yürütülebilir dosyamızın oluşturulmasını yapılandırmak için (örn. simge ekleme, ek dosyalar ve daha fazlası) başka seçenekler de sunulur. Bu bölümde, yürütülebilir dosyamızın oluşturduğu dosyaları nereye aktarmak istediğimizin yolunu da değiştirebiliriz: Bunu yapmak için “Ayarlar” seçeneğini açın ve istediğiniz çıktı dizinine göz atın. Son adım, Python dosyamızı dönüştürmek için “.py’ı .exe’ye dönüştür” seçeneğini tıklamaktır. 

Yürütülebilir dosyamızı nasıl yapılandırdığımızı görmek için Şekil 4’teki GIF’e bakın. 

Auto py to exe

Şekil 4: auto-py-to-exe yapılandırmasını gösteren GIF

auto-py-to-exe dizinine geri döndüğümüzde output adlı bir dizin göreceğiz: validation.exe dosyamız burada yer alır. Dosyayı seçip çalıştırın; sizden bir dosya adı girmenizi isteyen bir konsol açılacaktır:

executable validation file

Şekil 5: Yürütülebilir doğrulama dosyası çalıştırıldığında döndürülen konsol. 

Dosya adını – bu örnekte AB_NYC_2019.csv – girip enter’a basmanız yeterlidir. Konsol kapanacak ve output dizininde (yürütülebilir dosyanın bulunduğu yerde) validated_ab_nyc_2019.csv adlı yeni bir dosya oluşturulacaktır.

PyInstaller ve Nuitka Karşılaştırması

İşte aynı doğrulama betiğinde Nuitka ve PyInstaller’ın karşılaştırması; GUI alternatifi olarak auto-py-to-exe ile birlikte:

Ölçüt

PyInstaller

auto-py-to-exe

Nuitka

Yürütülebilir boyutu

ortalama

ortalama

%20–30 daha küçük

Derleme süresi

ortalama

ortalama

16x daha uzun

Başlama süresi

~2 saniye

~2 saniye

~1 saniye

Çalışma süresi (doğrulama görevi)

~3 saniye

~3 saniye

~2,5 saniye

Kaynak kod koruması

Orta

Orta

Mükemmel

Python 3.8–3.10

✅ Mükemmel

✅ Mükemmel

✅ Mükemmel

Python 3.11+

✅ Mükemmel

⚠️ Bilinen sorunlar

✅ Mükemmel

PyInstaller ve Nuitka, modern Python sürümlerinin tümünde güvenilir destek sunarken, auto-py-to-exe’nin Python 3.11 ve sonrası için bilinen uyumluluk sorunları vardır. Nuitka, daha küçük ve daha hızlı yürütülebilir dosyalar üretir ve fikri mülkiyeti daha iyi korur — ancak derleme süreci PyInstaller’dan yaklaşık 16 kat daha yavaştır.

Sonuç

Bu yazıda şunları öğrendiniz: 

  • Python dosyasının ne olduğu
  • Yürütülebilir dosyanın ne olduğu ve neden yararlı olabileceği 
  • Komut satırı işlemlerinde kendini daha rahat hissedenler için harika bir araç olan pyinstaller kullanarak bir Python komut dosyasını yürütülebilir dosyaya nasıl dönüştüreceğiniz. 
  • Yürütülebilir dosyanın nasıl oluşturulacağını yapılandırmak için bir grafik kullanıcı arayüzü (GUI) sunan auto-py-to-exe kullanarak bir Python komut dosyasını yürütülebilir dosyaya nasıl dönüştüreceğiniz. 

Python’u veri bilimi için nasıl kullanabileceğiniz hakkında daha fazla bilgi edinmek için DataCamp’in Python ile Yardımcı Veri Bilimci kariyer yoluna göz atın.

SSS

Yürütülebilir dosyaya ek dosyalar (ör. görseller, yapılandırma dosyaları) dahil edebilir miyim?

Evet, üç aracın da betiğinizin ihtiyaç duyduğu ek dosyaları paketlemenize izin verir. PyInstaller ve Nuitka için --add-data seçeneğini kullanarak dahil edilecek dosyaları belirtebilirsiniz. auto-py-to-exe’de ise GUI’de "Additional Files" altında dosya ekleme seçeneği vardır. Yürütülebilir dosyanın bu dosyalara erişebilmesi için göreli veya mutlak yolları doğru belirttiğinizden emin olun.

Yürütülebilir dosyaya özel bir simgeyi nasıl eklerim?

Özel bir simgeyi .ico dosyası belirterek ekleyebilirsiniz. PyInstaller için --icon bayrağını .ico dosyanızın yoluyla birlikte kullanın. auto-py-to-exe’de GUI içindeki "Icon" alanında simge yolunu ayarlayabilirsiniz. Nuitka da --windows-icon-from-ico bayrağını destekler. Simge dosyasının .ico biçiminde olması gerektiğini unutmayın.

Yürütülebilir dosyam neden bu kadar büyük ve boyutunu nasıl küçültebilirim?

Yürütülebilir dosyalar tüm bağımlılıkları, kütüphaneleri ve Python yorumlayıcısını içerebilir; bu da büyük boyutlara yol açabilir. Boyutu azaltmak için:

  • PyInstaller veya Nuitka’da her şeyi tek bir dosyada paketlemek için --onefile seçeneğini kullanın.
  • Gereksiz kütüphaneleri PyInstaller veya Nuitka’da --exclude-module seçeneğiyle hariç tutun.
  • Ortaya çıkan yürütülebilir dosyayı sıkıştırmak için UPX gibi araçları kullanmayı düşünün (PyInstaller ve auto-py-to-exe ile çalışır).
  • Genellikle PyInstaller’dan %20–30 daha küçük yürütülebilirler üreten Nuitka’yı kullanmayı düşünün.

Farklı bir işletim sistemi için yürütülebilir dosya oluşturabilir miyim?

PyInstaller, auto-py-to-exe ve Nuitka’nın tümü platforma özeldir. Farklı bir işletim sistemi için yürütülebilir oluşturmak üzere çapraz derleme araçları kullanmanız veya hedef işletim sistemi için bir sanal makine ya da konteyner kurmanız gerekir. Örneğin, Linux üzerinde Windows yürütülebiliri oluşturmak için Wine veya Windows ortamlı bir Docker kullanabilirsiniz.

pyinstaller ve auto-py-to-exe’ye alternatifler nelerdir?

Yürütülebilir oluşturmak için diğer araçlar şunlardır:

  • cx_Freeze: Platformlar arası yürütülebilir oluşturma aracı.
  • py2exe: Python betiklerinden yürütülebilir dosyalar oluşturmaya yönelik Windows’a özel bir araç.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Konular

Python için Kurslar

Kurs

Orta Seviye Python

4 sa
1.4M
Matplotlib kullanarak görselleştirmeler oluşturarak ve pandas ile DataFrames'i manipüle ederek veri bilimi becerilerinizi geliştirin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow