Python in EXE umwandeln: Runcell, PyInstaller, Nuitka und cx_Freeze
Aktualisiert am

Um Python in eine EXE umzuwandeln, starten Sie mit dem Python-zu-EXE-Konverter von Runcell (opens in a new tab). Fügen Sie eine .py-Datei, einen Projektordner oder ein ZIP hinzu, wählen Sie das Skript, das Ihre App startet, prüfen Sie die Abhängigkeiten und klicken Sie auf Build Windows EXE. Laden Sie das Ergebnis herunter und geben Sie es an Windows-Nutzer weiter, die kein Python installiert haben.
Eine EXE packt Ihr Programm mit der Laufzeitumgebung und den Dateien zusammen, die es braucht. Wer script.py in script.exe umbenennt, erreicht das nicht. Diese Anleitung zeigt zuerst Runcell, erklärt, wie ein Browser die Binärdatei erzeugt, und liefert die Befehle für drei lokale Packaging-Tools. Runcell ist ein Produkt von Kanaries, und dies ist unser empfohlener Weg im Browser.
- Python in EXE umwandeln: Runcell, PyInstaller, Nuitka und cx_Freeze
- pandas 3.1 Upgrade: Pandas4Warning beheben, df.select() nutzen, read_csv beschleunigen
- OpenCode 2.0 Upgrade: v1-Konfiguration, Plugins und Sessions migrieren
- Python 3.15 installieren und upgraden: uv, Lazy Imports und Paket-Kompatibilität getestet
- Claude Code Mods Tutorial: Eigenen Mod erstellen, testen und installieren, plus 15 Community-Beispiele
- GPT Image 2.5 nutzen: Flare vs. Sunburst, Anleitung und API-Preise
- DeepSeek Harness nutzen: Installation, Einrichtung und der erste Agent-Lauf
- Runcell Science: Open-Source-Alternative zu Claude Science für Forschungsteams
- Mac Ruhezustand verhindern: Codex, Claude Code und KI-Agenten weiterlaufen lassen
- OpenClaw vs ZeroClaw vs Pi Agent vs Nanobot: Welchen KI-Agenten-Stack sollten Sie 2026 wählen?
- Wie Claude Code Jupyter Notebooks analysiert: Data Science, Grenzen und die bessere Alternative
- Claude Code Routines: KI-Cronjobs für Agenten
- Claude Code Desktop: Bypass permissions aktivieren
- Schritt-für-Schritt-Anleitung zur Erstellung von zwei Python-Agenten mit Googles A2A-Protokoll
- Die Top 10 wachsenden Data Visualization Libraries in Python im Jahr 2025
Die passende Methode für Python zu EXE wählen
| Methode | Wählen Sie sie, wenn | Wo Sie bauen |
|---|---|---|
| Runcell (opens in a new tab), unsere erste Wahl | Sie ein Konsolenskript (Kommandozeile) oder ein Konsolenprojekt haben und eine Windows-x64-EXE wollen, ohne einen Packager zu installieren | Im Browser, auf Ihrem Gerät |
| PyInstaller | Sie einen Python-Befehl wollen, der einen Ordner oder eine einzelne ausführbare Datei erzeugt, oder eine GUI-App (Tkinter, PySide/PyQt) verpacken | In einer Windows-Python-Umgebung für einen Windows-Build |
| Nuitka | Sie Python kompilieren und eine native Compiler-Toolchain einrichten wollen | In einer Windows-Python-Umgebung plus einem unterstützten C-Compiler |
| cx_Freeze | Sie einen Anwendungsordner verteilen und dessen Build-Konfiguration pflegen wollen | In einer Windows-Python-Umgebung für einen Windows-Build |
Die Befehle unten verwenden Windows PowerShell. Nur bei den lokalen Methoden richten Sie diese Packaging-Tools selbst ein.
Methode 1: Python mit Runcell in eine EXE umwandeln
Mit einem kleinen, reproduzierbaren Skript beginnen
Speichern Sie dieses Beispiel als receipt.py. Es gibt einen Kassenbon aus, berechnet die Summe und wartet auf Enter, damit ein per Doppelklick geöffnetes Konsolenfenster offen bleibt. Es hat keine Abhängigkeiten von Drittanbietern und keine zusätzlichen Dateien.
items = {"Notebook": 19.50, "Cable": 8.25, "Stand": 12.25}
print("Receipt")
for name, price in items.items():
print(f"{name}: ${price:.2f}")
print(f"Total: ${sum(items.values()):.2f}")
input("Press Enter to close...")Wenn Python bereits installiert ist, prüfen Sie den Quellcode, bevor Sie ihn verpacken:
python receipt.pyDie Summe sollte Total: $40.00 lauten. Drücken Sie Enter, um das Skript zu beenden. Wenn das Ihr erstes Skript ist, erklärt unsere Anleitung zum Ausführen von Python-Skripten, wie Sie das Terminal einrichten.
Projekt hinzufügen und bauen
- Öffnen Sie den Python-zu-EXE-Konverter von Runcell (opens in a new tab) und gehen Sie auf der Seite zum Konverter.
- Wählen Sie Ihre Datei
receipt.py. Bei einer bestehenden Konsolenanwendung wählen Sie stattdessen den Projektordner oder das ZIP, einschließlich der Module und Ressourcen, die sie nutzt. - Legen Sie
receipt.pyals Einstiegsskript fest. In einem größeren Projekt ist das das Skript, mit dem Sie die Anwendung normalerweise starten, etwamain.py. - Prüfen Sie die erkannten Imports, Abhängigkeiten und eingebundenen Dateien. Das Kassenbon-Beispiel braucht keine zusätzlichen Pakete. Bei Ihrer eigenen App prüfen Sie, ob die benötigten Assets und Paketversionen zu dem Projekt passen, das Sie verteilen wollen. Die Laufzeitumgebung von Runcell ist Python 3.14, daher braucht jedes Paket ein Wheel, das unter Windows mit Python 3.14 funktioniert (ein
cp314-,abi3- oder reines Python-Wheel). - Klicken Sie auf Build Windows EXE und laden Sie die erzeugte ausführbare Datei herunter. Öffnen Sie sie unter Windows und prüfen Sie die Ausgabe des Kassenbons, bevor Sie sie weitergeben.
Bei unserem Test im Browser hat Runcell receipt.exe erzeugt und heruntergeladen. Laut Datei-Header ist es eine ausführbare Windows-x64-Datei. Unter Windows haben wir diese EXE nicht ausgeführt.
Bei Projekten mit mehreren Dateien behalten Sie die Ordnerstruktur bei. Eine Vorlage, die aus templates/invoice.html geladen wird, muss unter dem Pfad eingebunden sein, den Ihre Anwendung erwartet.
Wie ein Browser eine Windows-EXE erzeugt
Die eigene Packaging-Engine von Runcell kombiniert einen vorkompilierten Windows-Launcher, eine Python-Laufzeitumgebung, Ihre Projektdateien und die Abhängigkeiten. Daraus setzt sie auf Ihrem Gerät eine herunterladbare .exe zusammen. Die Windows-Komponenten sind bereits kompiliert, deshalb kann der Browser die fertige Binärdatei bauen, ohne lokal einen Windows-Compiler auszuführen.
Der Ablauf hat zwei getrennte Phasen:
Your Python project + dependencies
+
Python runtime + precompiled Windows launcher
|
v
Runcell assembles the EXE in your browser
|
v
Download the file, then run it on WindowsEine Datei zu erzeugen und sie auszuführen sind zwei verschiedene Vorgänge: Der Browser setzt die ausführbare Datei zusammen, Windows führt die fertige Anwendung aus. Die Erklärung des Mechanismus bei Runcell (opens in a new tab) beschreibt diesen Packaging-Weg.
Was auf Ihrem Gerät bleibt
Runcell baut die EXE in Ihrem Browser. Importiert Ihr Projekt ein Modul, das die eingebettete Windows-Laufzeitumgebung nicht enthält, meldet der Konverter das vor dem Build. Entfernen Sie dann diesen Import oder nutzen Sie einen der lokalen Packager unten.
Ihr Quellcode und Ihre Zugangsdaten bleiben während des Builds auf Ihrem Gerät. Die fertige EXE enthält Ihren Code, packen Sie also keine Zugangsdaten oder Schlüssel hinein, die Sie nicht weitergeben würden.
Methode 2: Lokal mit PyInstaller bauen
PyInstaller (opens in a new tab) sammelt Ihr Skript, seine Imports und die Python-Laufzeitumgebung in einer verteilbaren Anwendung. Für eine Windows-EXE führen Sie PyInstaller unter Windows aus. Es baut für das Betriebssystem, auf dem es läuft.
Öffnen Sie PowerShell in dem Ordner, der receipt.py enthält. Legen Sie eine virtuelle Umgebung an und installieren Sie PyInstaller darin. Wenn Sie Python von python.org installiert haben, funktioniert der Launcher py auch dann, wenn python nicht im PATH liegt, und wenn Sie das Python der Umgebung direkt aufrufen, sparen Sie sich das Aktivieren:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install pyinstaller
.\.venv\Scripts\python.exe -m PyInstaller --onefile receipt.pyDas Ergebnis ist dist\receipt.exe. Führen Sie es in PowerShell aus, um die Ausgabe zu sehen:
.\dist\receipt.exeFür Ihr eigenes Projekt installieren Sie vor dem Build dessen Abhängigkeiten in dieselbe Umgebung. Gibt es eine requirements.txt, nutzen Sie .\.venv\Scripts\python.exe -m pip install -r requirements.txt.
Der Aufruf -m PyInstaller, bei dem die Groß- und Kleinschreibung zählt, ist in der Installationsanleitung (opens in a new tab) dokumentiert. So bleiben der Packager und Ihre Abhängigkeiten in derselben Python-Umgebung.
Konsole, GUI oder Ordner-Build wählen
Behalten Sie für receipt.py den Konsolenmodus bei, weil das Skript print() und input() nutzt. Bei einer grafischen Anwendung, die die gesamte Interaktion in eigenen Fenstern abwickelt, blendet --windowed die Konsole aus. Beginnen Sie mit --onedir, wenn Sie die Anwendung und die zugehörigen Dateien in einem Ordner prüfen wollen, und nutzen Sie danach --onefile für einen einzelnen Download. Details stehen in der Referenz der PyInstaller-Optionen (opens in a new tab).
Um einen Ordner assets einzubinden, geben Sie ihn ausdrücklich an:
.\.venv\Scripts\python.exe -m PyInstaller --onefile --add-data "assets:assets" receipt.pyDas Beispiel setzt voraus, dass Sie einen Ordner assets angelegt haben. Für mitgelieferte, nur lesbare Dateien lösen Sie Pfade relativ zu __file__ auf, wie im Runtime-Leitfaden von PyInstaller (opens in a new tab) beschrieben. Unsere Anleitung zu Python pathlib erklärt die Pfadoperationen.
Methode 3: Mit Nuitka kompilieren und verpacken
Nuitka (opens in a new tab) kompiliert Python und kann verteilbare Anwendungen erzeugen. Wählen Sie es, wenn Sie einen Compiler-basierten Build selbst steuern wollen. Sie brauchen einen unterstützten C-Compiler; unter Windows nennt das Handbuch unter anderem Visual Studio 2022 oder neuer. Laut Handbuch funktioniert MinGW64 mit Python 3.13 oder neuer nur mit einem experimentellen Flag. Mit aktuellem Python sollten Sie also die Visual Studio Build Tools installieren.
Installieren Sie Nuitka in einer gleichartigen virtuellen Umgebung und fordern Sie den Onefile-Modus an:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install nuitka
.\.venv\Scripts\python.exe -m nuitka --mode=onefile receipt.pyUnter Windows ist die erwartete Ausgabe receipt.exe. Nutzen Sie --mode=standalone, wenn Sie lieber einen Ordner verteilen. Geben Sie einen dieser Modi ausdrücklich an: Der standardmäßige Accelerated-Modus von Nuitka ist nicht dafür gedacht, eine Anwendung auf einen Rechner ohne Python zu verteilen. Für die Einrichtung des Compilers und paketspezifische Optionen folgen Sie dem offiziellen Handbuch.
Methode 4: Mit cx_Freeze einen Anwendungsordner erstellen
cx_Freeze (opens in a new tab) erzeugt normalerweise einen Ordner, der die ausführbare Datei und die zugehörigen Bibliotheken enthält. Wählen Sie es, wenn Sie einen konfigurierten Anwendungs-Build pflegen und den gesamten Ordner verteilen wollen.
Installieren Sie das Paket in einer gleichartigen virtuellen Umgebung und starten Sie den Kommandozeilen-Builder:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install cx-Freeze
.\.venv\Scripts\cxfreeze.exe --script receipt.py --target-dir distDas folgt der aktuellen Befehlsreferenz von cxfreeze (opens in a new tab). Verteilen Sie den kompletten Ordner dist mit seinen Bibliotheken, nicht nur die EXE. Für wiederholbare Projekteinstellungen unterstützt cx_Freeze außerdem pyproject.toml und ein Python-Setup-Skript.
Das Ergebnis vor der Weitergabe prüfen
Führen Sie die Anwendung auf einem Windows-Rechner aus, der dem Setup Ihrer Empfänger entspricht. Prüfen Sie bei diesem Beispiel die Preise der Artikel, die Summe $40.00 und die Enter-Abfrage. Ein Rechner ohne separate Python-Installation ist ein guter Test dafür, ob Sie Laufzeitumgebung und Abhängigkeiten mitgeliefert haben.
Bei einer größeren App testen Sie die Aktion, die ein Empfänger tatsächlich braucht, etwa eine Eingabedatei auswählen und einen Bericht speichern. Schließt sich ein Konsolenfenster sofort wieder, starten Sie die EXE aus PowerShell, um die Fehlermeldung zu lesen. Fehlt ein Bild oder eine Vorlage, prüfen Sie sowohl die verpackten Dateien als auch den Pfad, über den sie geladen werden. Dynamische Imports müssen Sie mit den Optionen des lokalen Packagers eventuell ausdrücklich einbinden.
Unsignierte EXEs aus jedem dieser Tools können beim ersten Öffnen eine Warnung von Microsoft Defender SmartScreen auslösen. Der Empfänger wählt dann More info und anschließend Run anyway (auf einem deutschen Windows: „Weitere Informationen“ und „Trotzdem ausführen“).
Häufige Fragen
Wie wandle ich eine .py-Datei in eine .exe um, ohne einen Packager zu installieren?
Nutzen Sie den Python-zu-EXE-Konverter von Runcell (opens in a new tab). Wählen Sie Ihre Python-Datei, Ihren Ordner oder Ihr ZIP, legen Sie das Einstiegsskript fest, prüfen Sie die Abhängigkeiten und bauen Sie die Windows-EXE im Browser.
Kann ein Browser wirklich eine ausführbare Windows-Datei erzeugen?
Ja. Runcell setzt im Browser vorkompilierte Windows-Komponenten, eine Python-Laufzeitumgebung und Ihre Anwendung zu einer EXE zusammen. Diese Datei laden Sie herunter und führen sie unter Windows aus. Um die Binärdatei zu erzeugen, muss der Browser die Windows-Anwendung nicht ausführen.
Muss auf dem Rechner, der die EXE ausführt, Python installiert sein?
Nein. Eine separate Python-Installation ist nicht nötig, wenn Sie die Anwendung mit ihrer Laufzeitumgebung und den benötigten Abhängigkeiten verteilen. Runcell packt die Laufzeitumgebung beim Packaging mit ein. Bei einem Ordner-Build mit einem lokalen Tool geben Sie den kompletten Ausgabeordner weiter.
Wie lautet der PyInstaller-Befehl für eine einzelne EXE?
Führen Sie python -m PyInstaller --onefile receipt.py in der Windows-Umgebung aus, in der PyInstaller und die Abhängigkeiten Ihres Projekts installiert sind. Die Ausgabe des Beispiels ist dist\receipt.exe.
Quellen und Tests
Der Runcell-Ablauf und der Packaging-Mechanismus folgen dem öffentlichen Produktleitfaden (opens in a new tab), geprüft am 4. November 2026. Die lokalen Build-Befehle folgen der offiziellen Dokumentation, die bei jeder Methode verlinkt ist. Wir haben das Kassenbon-Beispiel auf macOS ausgeführt, es im Live-Konverter von Runcell ausgewählt, receipt.exe erzeugt und heruntergeladen und den Windows-x64-PE-Header geprüft. Auf macOS haben wir das Kassenbon-Skript außerdem mit PyInstaller 6.22.3 (--onefile) und cx_Freeze 8.7.4 gebaut, um diese Befehle zu prüfen, und die Modusoptionen von Nuitka mit der Ausgabe der Hilfe abgeglichen. Für diesen Artikel wurde keine EXE unter Windows ausgeführt.
Weiterführende Anleitungen
- Python-Skripte ausführen
- Virtuelle Umgebungen in Python
- Python pathlib für Datei- und Ressourcenpfade
- Python argparse für Kommandozeilen-Eingaben