Heim > Artikel > Backend-Entwicklung > Wie packe ich ein Python-Skript in eine ausführbare Datei? (ausführlich)
In diesem Artikel erfahren Sie, wie Sie ein Python-Skript in eine ausführbare Datei packen. (Details), es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Python ist eine Skriptsprache, die von einem Interpreter interpretiert und ausgeführt wird. Seine Veröffentlichungsmethode:
.py-Datei: Für Open-Source-Projekte oder wenn der Quellcode nicht so wichtig ist, wird der Quellcode direkt bereitgestellt und Benutzer müssen Python selbst installieren und installieren verschiedene abhängige Bibliotheken. (So machen es verschiedene offizielle Python-Installationspakete)
.pyc-Datei: Einige Unternehmen oder Einzelpersonen möchten aus Vertraulichkeitsgründen oder aus verschiedenen Gründen nicht, dass der Quellcode vom Betreiber eingesehen wird . Sie können mit einer Pyc-Datei veröffentlichen. Die Pyc-Datei ist ein Binärcode, der vom Python-Interpreter erkannt werden kann. Benutzer müssen daher nach der Veröffentlichung die entsprechende Version von Python installieren.
Ausführbare Datei: Für Nicht-Programmierer oder unerfahrene Benutzer wäre es eine Katastrophe, wenn Sie sie bitten würden, Python zu installieren und sich außerdem mit einer Menge abhängiger Bibliotheken herumschlagen müssten. Für solche Benutzer ist es am einfachsten, eine ausführbare Datei bereitzustellen und ihnen einfach zu erklären, wie sie diese verwenden sollen. Noch problematischer ist, dass unterschiedliche ausführbare Dateien für unterschiedliche Plattformen (Windows, Linux, Mac usw.) gepackt werden müssen.
In diesem Artikel wird hauptsächlich die letzte Methode vorgestellt. Sowohl .py als auch .pyc sind relativ einfach und Python selbst kann damit umgehen. Es gibt viele Möglichkeiten, Python-Skripte in ausführbare Dateien zu packen. Dieser Artikel konzentriert sich auf PyInstaller, die anderen dienen nur dem Vergleich und der Referenz.
Ein Vergleich verschiedener Verpackungstools ist wie folgt (aus dem Artikel Einfrieren Ihres Codes):
Solution | Windows | Linux | OS X | Python 3 | License | One-file mode | Zipfile import | Eggs | pkg_resources support |
---|---|---|---|---|---|---|---|---|---|
bbFreeze | yes | yes | yes | no | MIT | no | yes | yes | yes |
py2exe | yes | no | no | yes | MIT | yes | yes | no | no |
pyInstaller | yes | yes | yes | no | GPL | yes | no | yes | no |
cx_Freeze | yes | yes | yes | yes | PSF | no | yes | yes | no |
py2app | no | no | yes | yes | MIT | no | yes | yes | yes |
PS. Unter diesen sind sowohl pyInstaller als auch cx_Freeze gut. Einige Leute auf Stackoverflow schlugen auch die Verwendung von cx_Freeze vor und sagten, es sei bequemer. Die neue Version von pkg_resources scheint von pyInstaller unterstützt zu werden.
Für Benutzer, deren Netzwerk relativ stabil ist und die Pip-Quelladresse reibungslos verwenden können, führen Sie einfach den folgenden Befehl aus:
pip install pyinstaller
Normalerweise laden wir das Quellcodepaket herunter, geben dann das Paketverzeichnis ein und führen den folgenden Befehl aus (Setuptools müssen installiert werden):
python setup.py install
Überprüfen Sie nach der Installation, ob die Installation erfolgreich war:
pyinstaller --version
Nach erfolgreicher Installation können Sie den folgenden Befehl verwenden:
pyinstaller
: Der Hauptbefehl zum Packen ausführbarer Dateien wird im Folgenden detailliert vorgestellt.
pyi-archive_viewer
: Zeigen Sie die Dateiliste im ausführbaren Paket an.
pyi-bindepend
: Zeigen Sie die dynamische Bibliothek (.so- oder .dll-Datei) an, von der die ausführbare Datei abhängt
pyi-...
: usw. .
pyinstaller
Syntax:
pyinstaller [options] script [script ...] | specfile
Die einfachste Verwendung: Führen Sie das aus Befehl im selben Verzeichnis wie myscript.py:
pyinstaller mycript.py
Dann werden Sie sehen, dass zwei neue Verzeichnisse, build und dist, hinzugefügt werden. Die Dateien unter dist sind Gut. Veröffentlichte ausführbare Dateien. Für den obigen Befehl finden Sie eine Reihe von Dateien im Dist-Verzeichnis, einschließlich verschiedener dynamischer Bibliotheksdateien und ausführbarer Myscrip-Dateien. Manchmal fühlt es sich mühsam an. Sie müssen alles unter dist packen, bevor Sie es veröffentlichen. Glücklicherweise unterstützt pyInstaller nur Folgendes:
pyinstaller -F mycript.py
Sie werden feststellen, dass es unter dist nur eine ausführbare Datei gibt. Diese einzelne Datei kann unter einem System veröffentlicht und ausgeführt werden, das dem von Ihnen verwendeten Betriebssystem ähnelt.
Natürlich pyinstaller
gibt es verschiedene Optionen, es gibt allgemeine Optionen, wie z. B. die Option -d zum Debuggen, um den Ausführungsprozess von pyInstaller zu verstehen, und es gibt auch einige Optionen für verschiedene Plattformen Nutzung finden Sie auf der offiziellen PyInstaller-Website WIKI.
Beim Ausführen des pyInstaller
-Befehls wird eine .spec
-Datei im selben Verzeichnis wie das Skript generiert. Diese Datei teilt Pyinstaller mit, wie alle Ihre Skripte verarbeitet werden sollen, und enthält Befehlsoptionen. Im Allgemeinen müssen wir dieser Datei keine Beachtung schenken. Wenn wir Datendateien packen oder der gepackten Binärdatei einige Python-Laufzeitoptionen hinzufügen müssen, müssen wir für einige erweiterte Paketoptionen die Datei .spec
manuell bearbeiten . Sie können Folgendes verwenden:
pyi-makespec options script [script ...]
, um eine .spec-Datei zu erstellen. Für manuell bearbeitete .spec-Dateien können wir einen der folgenden Befehle verwenden:
pyinstaller specfile pyi-build specfile
PyInstaller packt tatsächlich den Python-Parser und Ihr eigenes Skript in eine ausführbare Datei und kompiliert sie in echten Maschinencode. Das sind sie Erwarten Sie also nicht, dass das Packen in eine ausführbare Datei die Betriebseffizienz verbessert. Der Vorteil besteht darin, dass Python und die Bibliotheken, von denen Ihr Skript abhängt, nicht installiert werden müssen die Läufermaschine. Unter dem Linux-Betriebssystem werden hauptsächlich die Befehle binutil
und ldd
im Toolpaket objdump
verwendet.
PyInstaller gibt das von Ihnen angegebene Skript ein, analysiert zunächst andere Skripte, von denen das Skript abhängt, sucht dann, kopiert, sammelt alle zugehörigen Skripte, einschließlich des Python-Parsers, und legt diese Dateien dann in einem Verzeichnis ab. Laden Sie es herunter, oder Packen Sie es in eine ausführbare Datei.
Sie können die Dateien direkt im gesamten Ausgabeordner oder in der generierten ausführbaren Datei veröffentlichen. Sie müssen den Benutzern lediglich mitteilen, dass Ihre Anwendung eigenständig ist und keine Installation anderer Pakete oder einer bestimmten Python-Version erfordert, bevor sie direkt ausgeführt werden kann.
Es ist zu beachten, dass die von PyInstaller gepackten ausführbaren Dateien nur in derselben Umgebung wie das Verpackungsmaschinensystem verwendet werden können. Mit anderen Worten, es ist nicht portierbar. Wenn es auf einem anderen System ausgeführt werden muss, muss es für diese Plattform gepackt werden.
Das obige ist der detaillierte Inhalt vonWie packe ich ein Python-Skript in eine ausführbare Datei? (ausführlich). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!