Erstellen Sie eine einzelne ausführbare Datei aus einem Python-Projekt
Ich möchte erstellen Sie eine einzelne ausführbare Datei aus meinem Python-Projekt. Ein Benutzer sollte in der Lage sein zum herunterladen und ausführen, ohne dass Python installiert ist. Wenn ich nur das verteilen eines Pakets, die ich verwenden könnte, pip -, Rad-und PyPI zu bauen und es zu verteilen, aber dies erfordert, dass der Benutzer Python und weiß, wie die Pakete zu installieren. Was kann ich verwenden, um erstellen eine eigenständige ausführbare Datei aus einem Python-Projekt?
Ich verwendet py2exe über 8 Monaten mit Erfolg. Es hat sich nicht geändert, weil es nicht erforderlich, vorausgesetzt, Sie sind immer noch das schreiben von python-2.x, nicht python 3.x
Ich bin noch schriftlich in 2.x(2.7.2 um genau zu sein), aber vielleicht sehen die Notwendigkeit zur übertragung zu 3.x(wenn die Module und wie kompatibel sind) und müsste die Lösung dann auch.
py2exe ist tot, cx_Freeze ist groß.
Beachten Sie, dass die Verpackung erschweren, das problem der Diagnostik erheblich. Nicht nur Sie (oder
Möglich, Duplikat der Wie man ein Python-Skript eigenständige ausführbare Datei ausgeführt wird, ohne Abhängigkeit?
Ich bin noch schriftlich in 2.x(2.7.2 um genau zu sein), aber vielleicht sehen die Notwendigkeit zur übertragung zu 3.x(wenn die Module und wie kompatibel sind) und müsste die Lösung dann auch.
py2exe ist tot, cx_Freeze ist groß.
Beachten Sie, dass die Verpackung erschweren, das problem der Diagnostik erheblich. Nicht nur Sie (oder
pdb
) nicht über einen einfachen Zugang zu den Dateien, die gerade ausgeführt wird, py2exe
(weiß nicht, über die anderen) nicht enthalten .py
Dateien, so dass Sie nicht sehen, Quellcode-Zeilen, in stack-traces.Möglich, Duplikat der Wie man ein Python-Skript eigenständige ausführbare Datei ausgeführt wird, ohne Abhängigkeit?
InformationsquelleAutor ShadowFlame | 2012-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind einige gebräuchlichsten. Sofern nicht ausdrücklich vermerkt, sind alle aufgeführten Projekte werden aktiv gepflegt wie in meinem letzten edit (August 2018).
Ich habe auch enthalten links zu Ihren jeweiligen websites, repos und PyPi-Inserate in Fall, dass Sie wollen selbst überprüfen, wie Häufig Sie schon aktualisiert.
Auch, sofern nicht anders angegeben, sind alle Programme, die unten aufgeführt werden, erzeugen eine exe-Datei, die speziell für das Betriebssystem es läuft. So zum Beispiel, läuft Pyinstaller in Windows wird ein Windows-exe-Datei, die aber mit Pyinstaller in Linux wird ein Linux-exe. Wenn Sie möchten, erzeugen eine exe-Datei, die für mehrere Betriebssysteme, die Sie haben, zu schauen, mit virtuellen Maschinen oder schauen Sie in mit so etwas wie Wein.
Folgende Programme arbeiten alle ähnlich-Sie bündeln Python und Ihr Programm, effektiv zu kombinieren, um zu produzieren eine ausführbare Datei.
PyInstaller:
cx_Freeze:
pyapp:
Hinweis: Vorherige Versionen von diesem post enthalten sind Zuschreibungen für py2exe (repo) und bbfreeze (repo). Beide Projekte wurden entfernt aus dieser Liste: die Sie gesehen haben, wenig bis keine Aktivität für mehrere Jahre, und erscheint zu sein völlig unbetreut. Siehe Bearbeiten Geschichte für den alten writeups.
Natürlich, das ist nicht der einzige Weg, Dinge zu tun:
pynsist:
Sonstige Hinweise:
Pynsist zu unterstützen scheint, Bündelung beliebiger Python-version, die mit Ihrer Anwendung. Jedoch, das tool selbst benötigt Python 3.5+ zu laufen.
Pynsist wird, erstellen Sie eine Windows-installer für dein Programm direkt installieren Sie Python auf dem computer des Benutzers statt, die Bündelung es mit dem code, und erstellen Sie Verknüpfungen, um Ihre Python-Skript. Obwohl dieses Programm erzeugt nur die Windows-Installationsprogramme, es scheint, dass Sie können noch laufen Pynsist auf Mac-und Linux-Computern.
Nuitka:
cython:
Meine persönliche Vorliebe ist die Verwendung von PyInstaller, da war es für mich am einfachsten zu bekommen und läuft, wurde entwickelt, um gut funktionieren mit vielen beliebten Bibliotheken wie numpy oder pygame und hat eine große Kompatibilität mit verschiedenen Betriebssystemen und Python-Versionen.
Allerdings habe ich auch erfolgreich baute verschiedene exes mit cx_Freeze, ohne allzu viel Schwierigkeiten, so sollten Sie auch berücksichtigen, dass das Programm aus.
Ich noch nicht hatte eine chance, um zu versuchen pynist, Nuitka, oder Cython umfangreich, aber Sie scheinen, wie ziemlich interessante und innovative Lösungen. Wenn Sie Probleme mit der ersten Gruppe von Programmen, könnte es sich lohnen, zu versuchen, eines dieser drei. Da diese Arbeit grundlegend anders dann die Pyinstaller/cx_freeze-Stil-Programme, die Sie schaffen könnte, diesen seltsam Rand Fälle, in denen die erste Gruppe scheitert.
In allem, ich denke, pynist ist ein guter Weg, umgehen die gesamte Frage der Verteilung der code insgesamt: Macs und Linux haben bereits native Unterstützung für Python, und nur die Installation von Python unter Windows könnte wirklich die sauberste Lösung. (Der Nachteil ist jetzt, dass Sie brauchen, um sorgen über die Ausrichtung auf mehrere Versionen von Python + Installation von Bibliotheken).
Nuitka-und Cython (in meiner begrenzten Erfahrung) scheinen ziemlich gut zu funktionieren. Nochmal, ich habe noch nicht getestet Sie ausgiebig selbst, und so ist meine wichtigste Beobachtung ist, dass Sie scheinen viel mehr zu produzieren, eine exe-Datei, dann "freeze" style-Programme tun.
Als ein letzter Hinweis, wenn Sie möchten, unterstützt nur Linux, möchten Sie vielleicht zu schauen, in die Erstellung einer Distribution Paket für Ihr Paket, anstatt es in eine ausführbare Datei. Listing tools, die helfen können Sie dies über den Rahmen dieses post, aber hier sind einige lesestoff wenn Sie sich entscheiden, erkunden Sie diese route.
Beachten Sie, dass Sie auch in Ihrem Bündel in der Microsoft C++ Redistributables (aka
msvcrxx.dll
, woxx
ist eine Versionsnummer) zu machen .exe-Datei ausführen (oder bitten Sie die Benutzer es selbst installieren). Dies ist nötig, da Python-basiert auf Windows mit Visual Studio.So wie es aussieht keiner der python-IDE (pycharm oder pydev - eclipse-das Stopfen) haben noch einarbeiten der compile-zu-single-executable-Funktionalität in die IDE selbst. Ist das richtig? 🙂
Wenn Sie sich sorgen über das halten sicher Ihre source-code, den Cython wohl die beste Wahl, weil es C-code kompiliert. Diese Programme, die mit einfrieren Technik allgemein kann leicht dekompiliert werden.
Nachdem ich ein wenig mehr Graben, es sieht aus wie beim pyinstaller selbst unterstützt Python 3.7, Sie noch nicht offiziell veröffentlicht die neue version mit 3,7-Unterstützung. (E. g. Ihre github-repo Staaten, die Sie unterstützen Python-3.7 + erscheinen Sie haben keine offenen Fragen übrig Bezug auf 3.7, aber die neueste version von pyinstaller auf PyPi ist ab Dez 2017). Also, wenn Sie brauchen 3.7 Unterstützung, die Sie könnten versuchen, bauen + installieren pyinstaller direkt von der Quelle, oder warten, bis die nächste Version. (Oder ein anderes Programm verwenden, natürlich)
InformationsquelleAutor Michael0x2a
pyinstaller ist noch in aktiver Entwicklung. Sie können sehen, die neuesten änderungen auf GitHub.
Es hat Unterstützung für alle drei großen Plattformen:
und es unterstützt die Python-Versionen 2.6 und 2.7. Es keine Unterstützung für Python 3, aber es ist eine experimentelle Python 3 Zweig.
Update
Ab version 3.2.1 unterstützt Python 2.7, 3.3-3.5
InformationsquelleAutor jterrace