Direkt zum Inhalt
HeimAnleitungenPython

Zwei einfache Methoden, um eine Python-Datei in eine Exe-Datei zu konvertieren

Erfahre, was eine ausführbare Datei ist und warum sie nützlich sein kann, und schau dir an, wie du ein Python-Skript mit auto-py-to-exe in eine ausführbare Datei umwandelst.
Aktualisierte 11. Sept. 2024  · 6 Min. lesen

Python-Dateien können auf zwei Arten ausgeführt werden: über das Terminal oder in einem Texteditor/IDE deiner Wahl. Beachte, dass eine Python-Datei lediglich ein Programm oder Skript ist, das mit Python-Quellcode geschrieben und mit der Dateierweiterung .py gespeichert wurde. Es gibt verschiedene Szenarien, in denen du deinen Quellcode verstecken möchtest, wenn du Python-Skripte mit anderen teilst. Eine Möglichkeit, dies zu erreichen, besteht darin, deine Python-Datei in eine ausführbare Datei zu konvertieren.

In diesem Artikel werden wir einige Szenarien behandeln, die es rechtfertigen, deine Python-Datei in eine ausführbare Datei zu konvertieren. Außerdem zeigen wir dir, wie du eine Python-Datei mithilfe von zwei Python-Bibliotheken in eine ausführbare Datei umwandelst: Pyinstaller und auto-py-to-exe.

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

Warum Python in eine exe-Datei umwandeln?

Ausführbare Dateien - Dateien mit der Endung .exe - werden verwendet, um Softwareanwendungen auf Computern mit dem 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 mehrere Gründe, warum du ein Python-Programm in eine ausführbare Datei umwandeln möchtest. Schauen wir uns ein paar davon an:

Böswillige Aktivität

Leider verbreiten manche Leute im Internet gerne bösartige Software, um die Geräte anderer Leute zu infizieren und ihre Daten zu stehlen. Eine Möglichkeit, sich gegen diese Leute zu wehren, ist, nicht auf ihre Betrügereien hereinzufallen - das bedeutet, dass du nicht blindlings .exe Dateien herunterlädst oder öffnest, die nicht aus einer zuverlässigen Quelle stammen.

Erreichbarkeit

Ein weiterer Grund, warum du eine Python-Datei in eine ausführbare Datei umwandeln möchtest, ist, dass du eine Anwendung mit anderen Nutzern teilen möchtest. Das typische Python-Programm kann aus mehreren Abhängigkeiten bestehen, die ein anderer Benutzer installieren muss, bevor das Programm ausgeführt werden kann. Was ist, wenn die Person nicht weiß, wie man programmiert? In solchen Szenarien kann es unzumutbar sein, von einer Nutzerin oder einem Nutzer zu erwarten, dass sie oder er das Programmieren lernt, bevor sie oder er eine Anwendung nutzt. Wenn du eine Python-Datei in eine ausführbare Datei umwandelst, können Nutzer dein Programm auch ohne Python-Kenntnisse aufrufen.

Sicherung des Quellcodes

Aber selbst wenn sie wissen, wer der Code ist, kann die Umwandlung einer Python-Datei in eine ausführbare Datei eine gute Option sein, um zu verhindern, dass dein Code gestohlen wird. Eine ausführbare Datei verhindert, dass Code gestohlen wird, weil sie eine kompilierte Version deines Quellcodes erstellt, die schwerer zu verstehen ist als der eigentliche Quellcode.

Arbeitsvorbereitung

Vielleicht möchtest du auch einen Job auf deinem Computer planen, um eine .exe Datei zu einer bestimmten Zeit auszuführen.

Python von Grund auf lernen

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

Konvertierung von Python in eine Exe-Anleitung 

Da du nun weißt, was .exe Dateien sind und warum du eine Python-Datei in eine .exe Datei umwandeln möchtest, schauen wir uns an, wie du das in Python machen kannst. In diesem Abschnitt werden wir zwei Frameworks vorstellen: pyinstaller und auto-py-to-exe. 

Für diese Demonstration wird der offene Datensatz von New York City Airbnb verwendet. 

Bevor Data Scientists einen Datensatz analysieren können, müssen die Daten so formatiert werden, dass sie mit den von ihnen verwendeten Tools kompatibel sind. Durch die Erstellung eines Validierungsschemas werden also alle Validierungen, die für jedes Feld gelten, deklarativ festgelegt. Dieser Prozess kann ziemlich repetitiv sein. Um zu verhindern, dass unsere Datenwissenschaftler sich wiederholende Aufgaben erledigen, haben wir ein automatisches Validierungsskript entwickelt, das regelmäßig ausgeführt wird. 

Hinweis: Sei äußerst vorsichtig bei der Verwendung relativer Pfade, wenn dein Skript Daten lesen muss. Es ist besser, absolute Pfade zu 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)

Hinweis: Wir haben dieses Skript kopiert und in die Verzeichnisse pyinstaller und auto-py-to-exe eingefügt. 

# 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 dem Code folgst, solltest du eine virtuelle Umgebung im pyinstaller-Verzeichnis und im auto-py-to-exe-Verzeichnis erstellen. 

Im Großen und Ganzen enthält das obige Skript eine Funktion - erfahre mehr über das Schreiben von Funktionen in Python - die einen Datensatz einliest und dann das erwartete Format bestimmter Felder in den Daten definiert. Der nächste Schritt besteht darin, dieses Python-Skript in eine ausführbare Datei umzuwandeln, die in regelmäßigen Abständen ausgeführt werden kann, um einen formatierten Datensatz zu erzeugen. 

Pyinstaller-Anleitung

Mit dem Pyinstaller kannst du eine Python-Datei schnell von deinem Terminal aus 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 navigierst zu dem Verzeichnis, in dem sich die Python-Datei befindet, die du konvertieren möchtest. 

Im nächsten Schritt führst du den folgenden Befehl aus: 

pyinstaller --onefile validation.py

Zu Beginn siehst du mehrere Protokolle, von denen das letzte etwas in der Art von "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 abgeschlossen wurde.

Nach Abschluss dieses Laufs werden zwei neue Verzeichnisse erstellt, build und dist, die sich im selben Verzeichnis befinden wie die Python-Datei. Im dist-Verzeichnis findest du das Skript validation.exe.

validation.exe auf einem Datensatz

Abbildung 2: Ein GIF, das die Ausführung von validation.exe auf einem Datensatz zeigt.

Um das Skript auszuführen, klicke es einfach an. Daraufhin wird eine Konsole angezeigt, in der du den Dateinamen der Daten eingeben musst, für die du die Validierung durchführen möchtest. Sobald du den Namen der Datei eingegeben hast, wird die Konsole geschlossen und die validierten Daten werden im gleichen Verzeichnis wie die Datei validation.exe erstellt - siehe Abbildung 2. 

Auto py to exe Tutorial 

Der erste Schritt, um eine ausführbare Datei mit auto-py-to-exe zu erstellen, ist, sie mit dem folgenden Befehl auszuführen: 

auto-py-to-exe 

Dies sollte eine grafische Benutzeroberfläche (GUI) zurückgeben, die uns dabei hilft, unsere Python-Datei in eine ausführbare Datei zu konvertieren. 

grafische Benutzeroberfläche

Abbildung 3: Die grafische Benutzeroberfläche kehrte nach der Ausführung des Befehls auto-py-to-exe zurück. 

Hinweis: Wenn es nicht funktioniert, stelle sicher, dass du eine virtuelle Umgebung im auto-py-to-exe-Verzeichnis erstellt und die requirements.txt mit folgendem Befehl in deiner virtuellen Umgebung installiert hast: pip install -r requirements.txt.

Die GUI hat mehrere Felder, die wir ausfüllen müssen. Schauen wir uns jede einzelne an und brechen wir sie: 

  • Besonderer Ort: In diesem Feld musst du den Speicherort der Python-Datei angeben, die du in eine ausführbare Datei umwandeln möchtest.  
  • Onefile: Hier wählst du aus, ob du ein einzelnes Verzeichnis oder eine Datei erstellen möchtest. Ein einzelnes Verzeichnis enthält alle Abhängigkeiten, die für die Ausführung deines Skripts erforderlich sind, und eine ausführbare Datei, während die Auswahl "Eine Datei" eine einzelne ausführbare Datei erzeugt. 
  • Konsolenfenster: Die Entscheidung zwischen einem "konsolenbasierten" oder "fensterbasierten" Konsolenfenster hängt davon ab, was von deinem Skript zurückgegeben wird. Das Skript, das wir oben erstellt haben, verlangt zum Beispiel, dass ein Benutzer einen Dateinamen eingibt. Daher wird die "konsolenbasierte" Lösung empfohlen, da diese die Konsole nach dem Ausführen der ausführbaren Datei öffnet. Wenn es nicht nötig ist, die Konsolenausgaben nach dem Ausführen der ausführbaren Datei anzuzeigen, ist "Window Based" eine gute Option. 

Außerdem haben wir weitere Optionen, um die Erstellung unserer ausführbaren Datei zu konfigurieren (z. B. Symbole, zusätzliche Dateien und mehr). In diesem Abschnitt können wir auch den Pfad ändern, in den wir die von unserer ausführbaren Datei erzeugten Dateien exportieren wollen: Wähle dazu die Option "Einstellungen" und navigiere zu dem von dir gewählten Ausgabeverzeichnis. Im letzten Schritt wählst du ".py in .exe konvertieren", um unsere Python-Datei zu konvertieren. 

Im GIF in Abbildung 4 siehst du, wie wir unsere ausführbare Datei konfiguriert haben. 

Auto py zu exe

Abbildung 4: Ein GIF zur Demonstration der Konfiguration für auto-py-to-exe

Wenn wir zurück zum auto-py-to-exe-Verzeichnis navigieren, gibt es ein Verzeichnis namens output: Dort befindet sich unsere validation.exe Datei. Wähle die Datei aus, um sie auszuführen. Daraufhin erscheint eine Konsole, die dich auffordert, einen Dateinamen einzugeben:

ausführbare Validierungsdatei

Abbildung 5: Konsole, die beim Ausführen der ausführbaren Validierungsdatei zurückgegeben wird. 

Gib einfach den Namen der Datei ein - in diesem Beispiel AB_NYC_2019.csv - und drücke die Eingabetaste. Dadurch wird die Konsole geschlossen und eine neue Datei im Ausgabeverzeichnis (in dem sich die ausführbare Datei befindet) mit dem Namen validated_ab_nyc_2019.csv erstellt.

Einpacken

In diesem Artikel hast du gelernt: 

  • Was eine Python-Datei ist
  • Was eine ausführbare Datei ist und warum sie nützlich sein kann 
  • Wie man ein Python-Skript mit pyinstaller in eine ausführbare Datei umwandelt. pyinstaller ist ein großartiges Werkzeug für alle, die sich mit der Kommandozeile besser auskennen. 
  • Wie man ein Python-Skript mit auto-py-to-exe in eine ausführbare Datei umwandelt, die den Benutzern eine grafische Benutzeroberfläche (GUI) bietet, um zu konfigurieren, wie die ausführbare Datei erstellt werden soll. 

Erfahre mehr darüber, wie du Python nutzen kannst, um Data Science zu betreiben, im DataCamps Data Scientists with Python career track.

Themen

Kurse für Python

Course

Intermediate Python

4 hr
1.1M
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with pandas.
See DetailsRight Arrow
Start Course
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

See MoreSee More