Direkt zum Inhalt

Drei Methoden, um ein Python-Skript in eine EXE-Datei umzuwandeln

Lerne, was eine ausführbare Datei ist und wie du ein Python-Skript mit PyInstaller, Nuitka und auto-py-to-exe in eine .exe-Datei umwandeln kannst.
Aktualisiert 15. Jan. 2026  · 7 Min. lesen

In diesem Artikel zeige ich dir ein paar Szenarien, in denen es sinnvoll ist, deine Python-Datei in eine ausführbare Datei umzuwandeln. Ich zeige dir auch, wie du eine Python-Datei mit drei Python-Bibliotheken in eine ausführbare Datei umwandeln kannst: Pyinstaller, Nuitka und auto-py-to-exe.

Klon dieses Github-Repository, um diesem Tutorial folgen zu können.

Warum Python in .exe umwandeln?

Ausführbare Dateien – Dateien mit der Endung „ .exe “ – werden benutzt, um Software auf Computern mit Windows-Betriebssystem zu installieren oder auszuführen. Die Datei, die es einem Windows-Computer ermöglicht, eine Anwendung auszuführen, ist die Datei „ .exe “.

Es gibt ein paar Gründe, warum du vielleicht ein Python-Programm in eine ausführbare Datei umwandeln möchtest. Schauen wir uns ein paar davon an:

Böswillige Aktivitäten

Leider gibt's im Internet Leute, die gerne bösartige Software verbreiten, um die Geräte anderer zu infizieren und ihre Daten zu klauen. Eine Möglichkeit, diesen Leuten entgegenzuwirken, besteht darin, nicht auf ihre Betrügereien hereinzufallen – das heißt, keine Dateien blind herunterzuladen oder zu öffnen, die nicht aus einer zuverlässigen Quelle stammen. .exe

Zugänglichkeit

Ein weiterer Grund, warum du eine Python-Datei in eine ausführbare Datei umwandeln möchtest, könnte sein, dass du eine Anwendung mit anderen Leuten teilen willst. Ein typisches Python-Programm kann mehrere Abhängigkeiten haben, die ein anderer Nutzer installieren muss, bevor das Programm läuft. Was ist, wenn die Person nicht programmieren kann? In solchen Fällen kann es echt unfair sein, von einem Nutzer zu erwarten, dass er erst programmieren lernt, bevor er eine App nutzen kann. Wenn du eine Python-Datei in eine ausführbare Datei umwandelst, können Leute dein Programm nutzen, ohne Python zu kennen.

Quellcode schützen

Aber selbst wenn sie wissen, wie man programmiert, kann es eine gute Idee sein, eine Python-Datei in eine ausführbare Datei umzuwandeln, um zu verhindern, dass dein Code geklaut wird. Eine ausführbare Datei verhindert, dass Code geklaut wird, weil sie eine kompilierte Version deines Quellcodes erstellt, die schwerer zu verstehen ist als der eigentliche Quellcode.

Jobplanung

Du kannst auch einen Job auf deinem Computer planen, um eine „ .exe “-Datei zu einem bestimmten Zeitpunkt auszuführen.

Python von Grund auf lernen

Beherrsche Python für Data Science und erwerbe gefragte Fähigkeiten.
Kostenloses Lernen beginnen

Wie man ein Python-Skript in eine .exe-Datei umwandelt 

Jetzt, wo du weißt, was „ .exe “-Dateien sind und warum du vielleicht eine Python-Datei in eine „ .exe “-Datei umwandeln möchtest, schauen wir uns an, wie das in Python geht. In diesem Abschnitt schauen wir uns drei Frameworks an: pyinstaller, nuitka und auto-py-to-exe.

Man sollte bedenken, dass auto-py-to-exe es bekannte Kompatibilitätsprobleme mit Python 3.11 und höher gibt und es im Allgemeinen nur bis Python 3.10 zuverlässig funktioniert, es sei denn, du verwendest bestimmte neuere Versionen und sorgfältig abgestimmte Abhängigkeiten.

Also, dann fangen wir mal an.

Das Skript vorbereiten

Für diese Demo nehmen wir den offenen Datens atz von Airbnb für New York City

Bevor Datenwissenschaftler einen Datensatz analysieren können, müssen die Daten so formatiert werden, dass sie mit den von ihnen verwendeten Tools kompatibel sind. Also, wenn du ein Validierungsschema erstellst, legst du damit alle Validierungen fest, die für jedes Feld gelten, und zwar ganz klar. Dieser Prozess kann ziemlich repetitiv sein. Damit unsere Datenwissenschaftler nicht immer wieder die gleichen Aufgaben machen müssen, haben wir ein automatisches Validierungsskript entwickelt, das regelmäßig läuft. 

Anmerkung: Sei super vorsichtig, wenn du relative Pfade benutzt, wenn dein Skript Daten lesen muss. Du solltest lieber absolute Pfade verwenden, um sicherzustellen, dass deine ausführbare Datei wie erwartet funktioniert. 

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)

Hey, wir haben dieses Skript in die Verzeichnisse „ pyinstaller “, „ nuitka “ und „ auto-py-to-exe “ reinkopiert. 

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

Jedes Verzeichnis hat seine eigene virtuelle Umgebung, in der wir die Anforderungen installiert haben: siehe pyinstaller-Anforderungen oder auto-py-to-exe-Anforderungen. Wenn du den Code mitverfolgst, stell sicher, dass du eine virtuelle Umgebung im pyinstaller-Verzeichnis und im auto-py-to-exe-Verzeichnis erstellst. 

Das obige Skript hat eine Funktion – mehr über das Schreiben von Funktionen in Python – die einen Datensatz einliest und dann das erwartete Format bestimmter Felder in den Daten festlegt. Der nächste Schritt ist, dieses Python-Skript in eine ausführbare Datei umzuwandeln, die regelmäßig laufen kann, um einen formatierten Datensatz zu erstellen. 

Methode 1: Pyinstaller

Mit Pyinstaller kannst du eine Python-Datei schnell über dein Terminal in eine ausführbare Datei umwandeln. Sobald du deine virtuelle Umgebung erstellt und die Voraussetzungen für dein Skript (einschließlich pyinstaller) installiert hast, öffnest du einfach das Terminal und gehst zu dem Verzeichnis, in dem sich die Python-Datei befindet, die du konvertieren möchtest. 

Als nächstes musst du den folgenden Befehl ausführen: 

pyinstaller --onefile validation.py

Zuerst siehst du mehrere Protokolle, von denen das letzte ungefähr so was wie „erfolgreich abgeschlossen“ sagt – vorausgesetzt, die ausführbare Datei wurde erfolgreich erstellt. 

Ausführbare Datei wird erstellt

Abbildung 1: Protokolle, die zeigen, dass die ausführbare Datei erstellt wurde und dass sie erfolgreich fertiggestellt wurde.

Wenn du das hier durchziehst, werden zwei neue Ordner namens „build“ und „dist“ im selben Ordner erstellt, wo die Python-Datei ist. Im Verzeichnis „dist“ findest du das Skript „ validation.exe “.

validation.exe auf einem Datensatz

Abbildung 2: Ein GIF, das zeigt, wie validation.exe auf einen Datensatz angewendet wird.

Um das Skript zu starten, klick einfach drauf. Dadurch öffnet sich eine Konsole, in der du den Dateinamen der Daten eingeben musst, die du überprüfen willst. Sobald du den Dateinamen eingegeben hast, wird die Konsole geschlossen und die validierten Daten werden im selben Verzeichnis wie die Datei „ validation.exe “ erstellt – siehe Abbildung 2. 

Methode 2: Nuitka

Nuitka ist ein weiterer Ansatz, den man sich mal anschauen sollte. Anders als PyInstaller, das dein Python-Skript mit dem Python-Interpreter zusammenpackt, kompiliert Nuitka deinen Python-Code tatsächlich zu C-Code. Das führt zu besserem Quellcode-Schutz, möglicherweise schnellerer Ausführung und oft kleineren Dateigrößen. Der Nachteil ist, dass das Kompilieren länger dauert und die Einrichtung komplizierter ist.

Installation und Einrichtung

Nachdem du eine virtuelle Umgebung erstellt und Nuitka mit „ pip install nuitka “ installiert hast, musst du sicherstellen, dass ein C-Compiler auf deinem System verfügbar ist. Welchen Compiler du brauchst, hängt von deinem Betriebssystem ab:

  • Windows: Lade die Microsoft Visual C++ Build Tools (kostenlos) von der Visual Studio-Website runter und installiere sie oder benutze MinGW.

  • macOS: Installiere die Xcode-Befehlszeilentools mit xcode-select --install

  • Linux: GCC ist meistens schon installiert; wenn nicht, installiere es über deinen Paketmanager.

Nach der Installation erkennt Nuitka deinen Compiler automatisch. Wenn du Probleme hast, check mal, ob der Compiler in deinem System PATH ist.

Das Validierungsskript mit Nuitka umwandeln

Lass uns dasselbe NYC Airbnb-Validierungsskript mit Nuitka umwandeln, genau wie wir es mit PyInstaller und auto-py-to-exe gemacht haben. Um unser Skript in eine ausführbare Datei zu kompilieren, machst du Folgendes:

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

Schauen wir uns die einzelnen Flaggen mal genauer an:

  • --onefile: Erstellt eine einzige ausführbare Datei (anstatt eines Verzeichnisses mit mehreren Dateien und Abhängigkeiten).

  • --follow-imports: Fügt automatisch alle Module hinzu, die dein Skript importiert.

  • --include-package=pandas: Fügt das Pandas-Paket extra hinzu (manche Pakete werden nicht automatisch erkannt, also stellt das sicher, dass es dabei ist).

Im Gegensatz zu PyInstaller, das in etwa 30 Sekunden fertig ist, dauert Nuitka deutlich länger – normalerweise 5 bis 15 Minuten, je nachdem, wie kompliziert dein Code ist und wie schnell dein System ist. Im Terminal siehst du die Kompilierungsausgabe, die den Fortschritt der C-Kompilierungsphase anzeigt.

Sobald das erledigt ist, bekommst du eine Erfolgsmeldung, die dir sagt, dass die ausführbare Datei erstellt wurde. Die kompilierte ausführbare Datei wird im selben Verzeichnis wie die Datei „ validation.py “ erstellt.

Klick einfach doppelt auf validation.exe “ oder starte es über die Befehlszeile. Es öffnet sich ein Konsolenfenster, in dem du einen Dateinamen eingeben musst, genau wie bei PyInstaller. Nachdem du „ AB_NYC_2019.csv“ eingegeben und die Eingabetaste gedrückt hast, läuft die Validierung, die Konsole schließt sich und eine neue Datei validated_ab_nyc_2019.csv “ wird im selben Verzeichnis erstellt, genau wie bei der PyInstaller-Version.

Methode 3: auto-py-to-exe

Der erste Schritt, um mit auto-py-to-exe eine ausführbare Datei zu erstellen, ist, das Programm mit dem folgenden Befehl zu starten: 

auto-py-to-exe 

Das sollte eine grafische Benutzeroberfläche (GUI) anzeigen, die uns dabei hilft, unsere Python-Datei in eine ausführbare Datei umzuwandeln. 

grafische Benutzeroberfläche

Abbildung 3: Die grafische Benutzeroberfläche kam nach dem Ausführen des Befehls „auto-py-to-exe“ wieder zurück. 

Hey, wenn's nicht klappt, check mal, ob du eine virtuelle Umgebung im Verzeichnis „ auto-py-to-exe ” erstellt und die Datei „requirements.txt” mit dem folgenden Befehl in deiner virtuellen Umgebung installiert hast: „ pip install -r requirements.txt ”.

Die Benutzeroberfläche hat ein paar Felder, die wir ausfüllen müssen. Schauen wir uns mal jedes einzelne an und machen wir eine Pause: 

  • Genaue Lage: In diesem Feld musst du den Speicherort der Python-Datei angeben, die du in eine ausführbare Datei umwandeln möchtest.  
  • Onefile: Hier kannst du auswählen, ob du ein einzelnes Verzeichnis oder eine einzelne Datei erstellen möchtest. Ein einzelnes Verzeichnis enthält alle Abhängigkeiten, die du zum Ausführen deines Skripts brauchst, sowie eine ausführbare Datei. Wenn du „Eine Datei“ auswählst, wird eine einzelne ausführbare Datei erstellt. 
  • Konsolenfenster: Die Wahl zwischen einem „konsolenbasierten“ oder „fensterbasierten“ Konsolenfenster hängt davon ab, was dein Skript zurückgibt. Das Skript, das wir oben erstellt haben, verlangt zum Beispiel, dass der Benutzer einen Dateinamen eingibt. Deshalb ist die „konsolenbasierte“ Lösung besser, weil sie die Konsole öffnet, nachdem die ausführbare Datei gestartet wurde. Wenn du die Konsolenausgaben nach dem Ausführen der ausführbaren Datei nicht anzeigen musst, ist „Window Based“ eine gute Wahl. 

Wir haben auch andere Optionen, um die Erstellung unserer ausführbaren Datei anzupassen (z. B. Symbole, zusätzliche Dateien und mehr hinzufügen). Hier kannst du auch den Pfad ändern, wo die Dateien, die von deiner ausführbaren Datei erstellt werden, gespeichert werden sollen: Klick dazu einfach auf die Option „Einstellungen“ und such dir das Verzeichnis aus, wo die Dateien gespeichert werden sollen. Der letzte Schritt ist, „.py in .exe konvertieren“ auszuwählen, um unsere Python-Datei umzuwandeln. 

Schau dir das GIF in Abbildung 4 an, um zu sehen, wie wir unsere ausführbare Datei eingerichtet haben. 

Auto py zu exe

Abbildung 4: Ein GIF, das zeigt, wie man auto-py-to-exe einrichtet

Wenn wir zurück zum Verzeichnis „auto-py-to-exe” gehen, gibt's da ein Verzeichnis namens „output”: Da ist unsere Datei „ validation.exe ”. Wähle die Datei aus, um sie zu starten. Dann öffnet sich eine Konsole, wo du einen Dateinamen eingeben musst:

ausführbare Validierungsdatei

Abbildung 5: Die Konsole ist nach dem Ausführen der ausführbaren Validierungsdatei zurück. 

Gib einfach den Namen der Datei ein – in diesem Beispiel „ AB_NYC_2019.csv “ – und drück die Eingabetaste. Dadurch wird die Konsole geschlossen und eine neue Datei namens „ validated_ab_nyc_2019.csv “ im Ausgabeverzeichnis (wo sich die ausführbare Datei befindet) erstellt.

PyInstaller vs Nuitka

Hier siehst du, wie Nuitka und PyInstaller beim gleichen Validierungsskript abschneiden, zusammen mit auto-py-to-exe als GUI-Alternative:

Metrisch

PyInstaller

auto-py-to-exe

Nuitka

Größe der ausführbaren Datei

Durchschnitt

Durchschnitt

20–30 % kleiner

Bauzeit

Durchschnitt

Durchschnitt

16 Mal länger

Startzeit

~2 Sekunden

~2 Sekunden

~1 Sekunde

Laufzeit (Validierungsaufgabe)

~3 Sekunden

~3 Sekunden

~2,5 Sekunden

Quellcode-Schutz

Mäßig

Mäßig

Super

Python 3.8–3.10

✅ Super

✅ Super

✅ Super

Python 3.11+

✅ Super

⚠️ Bekannte Probleme

✅ Super

PyInsund Nuitka bieten beide zuverlässige Unterstützung für alle aktuellen Python-Versionen, während auto-py-to-exe bekannte Kompatibilitätsprobleme mit Python 3.11 und höher hat. Nuitka macht kleinere, schnellere ausführbare Dateien mit besserem Schutz für geistiges Eigentum – aber der Erstellungsprozess dauert ungefähr 16 Mal länger als bei PyInstaller.

Fazit

In diesem Artikel hast du gelernt: 

  • Was ist eine Python-Datei?
  • Was ist eine ausführbare Datei und wozu kann sie gut sein? 
  • Wie man ein Python-Skript mit pyinstaller in eine ausführbare Datei umwandelt. Das ist ein super Tool für alle, die mit der Befehlszeile besser klarkommen. 
  • So machst du ein Python-Skript mit auto-py-to-exe zu einer ausführbaren Datei. Dieses Tool hat eine grafische Benutzeroberfläche (GUI), wo du einstellen kannst, wie die ausführbare Datei erstellt werden soll. 

Erfahre mehr darüber, wie du Python für Data Science nutzen kannst, im DataCamp -Lernpfad „Associate Data Scientist with Python”.

FAQs

Kann ich zusätzliche Dateien (z. B. Bilder, Konfigurationsdateien) in die ausführbare Datei packen?

Ja, mit allen drei Tools kannst du zusätzliche Dateien, die dein Skript braucht, zusammenpacken. Für PyInstaller und Nuitka kannst du die Option „ --add-data “ nutzen, um die Dateien anzugeben, die du einbinden willst. In auto-py-to-exe gibt's in der GUI 'ne Option, um Dateien unter „Zusätzliche Dateien“ hinzuzufügen. Stell sicher, dass du relative oder absolute Pfade richtig angibst, damit die ausführbare Datei auf diese Dateien zugreifen kann.

Wie kann ich der ausführbaren Datei ein eigenes Symbol hinzufügen?

Du kannst deiner ausführbaren Datei ein eigenes Symbol hinzufügen, indem du eine .ico-Datei angibst. Für PyInstaller nimm das Flag „ --icon “ und gib dann den Pfad zu deiner .ico-Datei an. In auto-py-to-exe kannst du den Pfad zum Symbol im Feld „Icon“ in der Benutzeroberfläche einstellen. Nuitka unterstützt auch das Flag „ --windows-icon-from-ico “. Beachte, dass die Icon-Datei im .ico-Format sein muss.

Warum ist meine ausführbare Datei so groß und wie kann ich sie verkleinern?

Ausführbare Dateien können alle Abhängigkeiten, Bibliotheken und den Python-Interpreter enthalten, was sie ziemlich groß machen kann. Um die Größe zu verringern:

  • Benutze die Option „ --onefile ” in PyInstaller oder Nuitka, um alles in einer einzigen Datei zu packen.
  • Schmeiß unnötige Bibliotheken raus, indem du die Option „ --exclude-module “ in PyInstaller oder Nuitka benutzt.
  • Du kannst Tools wie UPX nutzen, um die fertige ausführbare Datei zu komprimieren (funktioniert mit PyInstaller und auto-py-to-exe).
  • Probier mal Nuitka aus, das macht normalerweise 20–30 % kleinere ausführbare Dateien als PyInstaller.

Kann ich eine ausführbare Datei für ein anderes Betriebssystem erstellen?

PyInstaller, auto-py-to-exe und Nuitka sind alle nur für bestimmte Plattformen. Um eine ausführbare Datei für ein anderes Betriebssystem zu erstellen, musst du Cross-Compiler-Tools verwenden oder eine virtuelle Maschine oder einen Container für das Zielbetriebssystem einrichten. Um zum Beispiel eine Windows-ausführbare Datei unter Linux zu erstellen, kannst du Wine oder Docker mit einer Windows-Umgebung nutzen.

Was gibt's denn noch außer pyinstaller und auto-py-to-exe?

Andere Tools zum Erstellen von ausführbaren Dateien sind:

  • cx_Freeze: Ein Tool, mit dem du auf verschiedenen Plattformen ausführbare Dateien erstellen kannst.
  • py2exe: Ein Windows-Tool, mit dem man aus Python-Skripten ausführbare Dateien machen kann.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Themen

Kurse für Python

Kurs

Python für Fortgeschrittene

4 Std.
1.3M
Erweitere deine Data-Science-Fähigkeiten und lerne, wie du mit Matplotlib Visualisierungen erstellst und DataFrames mit pandas bearbeitest.
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

30 coole Python-Tricks für besseren Code mit Beispielen

Wir haben 30 coole Python-Tricks zusammengestellt, mit denen du deinen Code verbessern und deine Python-Kenntnisse ausbauen kannst.
Kurtis Pykes 's photo

Kurtis Pykes

Tutorial

Wie man eine Zahl in Python quadriert: Einfache Beispiele und fortgeschrittene Methoden

Quadratische Gleichungen in Python sind echt einfach: Benutz den eingebauten **-Operator oder probier NumPy, pow(), math.pow(), Bitoperatoren und andere Funktionen aus, um vielseitigere Lösungen zu finden.
Allan Ouko's photo

Allan Ouko

Tutorial

So kürzt man eine Zeichenfolge in Python: Drei verschiedene Methoden

Lerne die Grundlagen zum Entfernen von führenden und nachfolgenden Zeichen aus einer Zeichenfolge in Python.
Adel Nehme's photo

Adel Nehme

Tutorial

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

Tutorial

Python JSON-Daten: Ein Leitfaden mit Beispielen

Lerne, wie man mit JSON in Python arbeitet, einschließlich Serialisierung, Deserialisierung, Formatierung, Leistungsoptimierung, Umgang mit APIs und Verständnis der Einschränkungen und Alternativen von JSON.
Moez Ali's photo

Moez Ali

Mehr anzeigenMehr anzeigen