Wie packe ich ein Python-Skript in eine ausführbare Datei? (ausführlich)

不言
Freigeben: 2018-09-27 15:30:51
Original
5920 Leute haben es durchsucht

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.

Einfrieren Ihres Codes

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.

PyInstaller installieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Überprüfen Sie nach der Installation, ob die Installation erfolgreich war:

pyinstaller --version
Nach dem Login kopieren

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 verwenden

pyinstaller Syntax:

pyinstaller [options] script [script ...] | specfile
Nach dem Login kopieren

Die einfachste Verwendung: Führen Sie das aus Befehl im selben Verzeichnis wie myscript.py:

pyinstaller mycript.py
Nach dem Login kopieren

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
Nach dem Login kopieren

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 ...]
Nach dem Login kopieren

, 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
Nach dem Login kopieren

Einführung in die Prinzipien von PyInstaller

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!