Einführung
Das Ausführen von Python-Skripten erfordert viele Voraussetzungen, z. B. die Installation von Python, die Installation einer Vielzahl von Modulen, die Verwendung der Befehlszeile usw. das Ausführen einer .exe
-Datei ist sehr einfach.
Wenn Sie eine einfache Anwendung erstellen und an viele Benutzer verteilen möchten, ist es nicht schwierig, sie als kurzes Python-Skript zu schreiben.
Beispiele wie dieses zeigen, dass es einen triftigen Grund gibt, .py
-Programme in äquivalente .exe
-Programme unter Windows zu konvertieren. .exe
steht für „Executable File“, was auch als Binärdatei bezeichnet wird.
Der beliebteste Weg, dies zu erreichen, ist die Verwendung des py2exe
-Moduls. In diesem Artikel gehen wir schnell auf die Grundlagen von py2exe
ein und beheben einige häufig auftretende Probleme. Um zu folgen, sind keine fortgeschrittenen Python-Kenntnisse erforderlich, Sie müssen jedoch Windows verwenden.
Das Konvertieren eines interpretierten Sprachcodes in eine ausführbare Datei wird allgemein als Einfrieren bezeichnet.
py2exe installieren
Um das py2exe
-Modul zu verwenden, müssen wir es installieren. Machen wir das mit pip
:
$ pip install py2exe
Konvertieren von Python-Skript in .exe
Schreiben wir zuerst ein Programm, das Text auf die Konsole druckt:
import mathprint("Hannibal ante Portas")print(factorial(4))
Führen wir die folgenden Befehle in der Windows-Befehlszeile aus, um ein Verzeichnis (exampDir
) zu erstellen, den bereits geschriebenen Code in dieses Verzeichnis zu verschieben und ihn schließlich auszuführen:
$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py
Dies sollte ausgeben:
Hannibal ante Portas24
Testen Sie die Skripte immer, bevor Sie sie in ausführbare Dateien umwandeln, um sicherzustellen, dass ein Fehler nicht durch den Quellcode verursacht wird.
Setup und Konfiguration
Erstellen Sie eine weitere Datei mit dem Namen setup.py
im selben Ordner. Hier werden wir Konfigurationsdetails darüber aufbewahren, wie wir unser Programm kompilieren möchten. Wir werden vorerst nur ein paar Codezeilen einfügen:
from distutils.core import setup # Need this to handle modulesimport py2exe import math # We have to import all modules used in our programsetup(console=) # Calls setup function to indicate that we're dealing with a single console application
Wenn wir es mit einer App mit einer grafischen Benutzeroberfläche zu tun hätten, würden wir console
durch windows
ersetzen:
setup(windows=)
Öffnen Sie nun die Eingabeaufforderung als Administrator, navigieren Sie zu dem gerade erwähnten Verzeichnis und führen Sie die setup.py
-Datei aus:
$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...
dist Ordner
Wenn alles richtig gemacht wird, sollte dies ein Unterverzeichnis mit dem Namen dist
erzeugen. Darin befinden sich je nach Programm einige verschiedene Dateien, von denen eine example.exe
sein sollte. Um es von der Konsole aus auszuführen, führen Sie Folgendes aus:
$ example
Und Sie werden von unserem lateinischen Zitat begrüßt, gefolgt vom Wert von 4!:
Hannibal ante Portas24
Oder Sie können darauf doppelklicken und es wird in der Konsole ausgeführt.
Wenn Sie alle Dateien bündeln möchten, fügen Sie bundle_files
und compressed
hinzu und setzen Sie zipfile
auf None:
from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)
Und führen Sie die Befehle erneut aus, um die zu generieren.exe-Datei.
Jetzt können Ihre Endbenutzer Ihre Skripte ausführen, ohne dass Kenntnisse oder Voraussetzungen auf ihren lokalen Computern installiert sind.
Fehlerbehebung
Fehler beim Konvertieren von .py
-Dateien in .exe
-Dateien sind häufig, daher werden wir einige häufige Fehler und Lösungen auflisten.
So beheben Sie fehlende DLLs nach der Verwendung von py2exe
Ein häufiges Problem mit py2exe sind fehlende .dll
-s.
DLL steht für „Dynamic-Link Library“, und sie sind nicht nur da, um Fehler zu machen, versprochen. DLLs enthalten Code, Daten und Ressourcen, die unser Programm möglicherweise während der Ausführung benötigt.
Nach dem Ausführen des .exe
, wenn Sie einen Systemfehler erhalten, der so etwas wie sagt:
The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem.
Oder die Befehlszeile sagt:
ImportError: (DLL load failed: The specified module could not be found.)
Die Lösung besteht darin, das fehlende .dll
zu finden und in Ihren dist-Ordner zu verschieben. Es gibt zwei Möglichkeiten, dies zu tun.
- Suchen Sie Ihren Computer nach der Datei und kopieren Sie sie. Dies wird die meiste Zeit funktionieren.
- Finden Sie das fehlende
.dll
online und laden Sie es herunter. Versuchen Sie, es nicht von einer zwielichtigen Website herunterzuladen.
Wie generiere ich ausführbare 32/64-Bit-Dateien mit py2exe?
Um eine 64-Bit-ausführbare Datei zu erstellen, installieren Sie 64-Bit-Python auf Ihrem Gerät. Das gleiche gilt für die 32-Bit-Version.
Verwendung von py2exe unter Linux oder Mac
py2exe
wird unter Linux oder Mac nicht unterstützt, da es erstellt werden soll.exe-Dateien, die ein Windows-einzigartiges Format ist. Sie können eine virtuelle Windows-Maschine auf Mac und Linux herunterladen, Wine verwenden oder ein anderes Tool wie Pyinstaller unter Linux oder py2app unter Mac verwenden.
Fazit
Um Python-Projekte auf Windows-Geräten einfacher ausführen zu können, müssen wir eine ausführbare Datei generieren. Wir können viele verschiedene Tools verwenden, wie Pyinstaller, auto-py-to-exe, cx_Freeze und py2exe.
Binärdateien können DLL-s verwenden, also stellen Sie sicher, dass Sie sie in Ihr Projekt aufnehmen.