Python Language
PyInstaller - Verteilen von Python-Code
Suche…
Syntax
- pyinstaller [Optionen] Skript [Skript ...] | Specfile
Bemerkungen
PyInstaller ist ein Modul, mit dem Python-Apps in einem Paket zusammen mit allen Abhängigkeiten gebündelt werden. Der Benutzer kann dann die Paket-App ohne einen Python-Interpreter oder irgendwelche Module ausführen. Es bündelt viele wichtige Pakete wie Numpy, Django, OpenCv und andere.
Einige wichtige Punkte zum Erinnern:
- Pyinstaller unterstützt Python 2.7 und Python 3.3+
- Pyinstaller wurde gegen Windows, Linux und Mac OS X getestet.
- Es ist kein Cross Compiler. (Eine Windows-App kann nicht in Linux gepackt werden. Sie müssen PyInstaller in Windows ausführen, um eine App für Windows zu bündeln.)
Installation und Einrichtung
Pyinstaller ist ein normales Python-Paket. Es kann mit pip installiert werden:
pip install pyinstaller
Installation unter Windows
Für Windows ist pywin32 oder pypiwin32 eine Voraussetzung. Letzteres wird automatisch installiert, wenn pyinstaller mit pip installiert wird.
Installation unter Mac OS X
PyInstaller arbeitet mit dem Standard-Python 2.7, der im aktuellen Mac OS X enthalten ist. Wenn spätere Versionen von Python verwendet werden sollen oder wenn Hauptpakete wie PyQT, Numpy, Matplotlib und dergleichen verwendet werden, wird empfohlen, sie mit zu installieren entweder MacPorts oder Homebrew .
Installation aus dem Archiv
Wenn pip nicht verfügbar ist, laden Sie das komprimierte Archiv von PyPI herunter .
Laden Sie zum Testen der Entwicklungsversion das komprimierte Archiv vom Entwicklungszweig der PyInstaller-Downloadseite herunter .
Erweitern Sie das Archiv und suchen Sie das Skript setup.py
. python setup.py install
mit Administratorrechten aus, um PyInstaller zu installieren oder zu aktualisieren.
Installation überprüfen
Der Befehl pyinstaller
sollte nach erfolgreicher Installation für alle Plattformen im pyinstaller
vorhanden sein.
Überprüfen Sie dies, indem pyinstaller --version
in der Befehlszeile pyinstaller --version
eingeben. Dadurch wird die aktuelle Version von pyinstaller gedruckt.
Pyinstaller verwenden
Navigieren Sie im einfachsten Anwendungsfall einfach zu dem Verzeichnis, in dem sich Ihre Datei befindet, und geben Sie Folgendes ein:
pyinstaller myfile.py
Pyinstaller analysiert die Datei und erstellt:
- Eine Datei myfile.spec im selben Verzeichnis wie
myfile.py
- Ein Build- Ordner im selben Verzeichnis wie
myfile.py
- Ein dist- Ordner im selben Verzeichnis wie
myfile.py
- Protokolldateien im Erstellungsordner
Die mitgelieferte App befindet sich im Ordner dist
Optionen
Es gibt verschiedene Optionen, die mit dem pyinstaller verwendet werden können. Eine vollständige Liste der Optionen finden Sie hier .
Einmal gebündelt kann Ihre App ausgeführt werden, indem Sie 'dist \ myfile \ myfile.exe' öffnen.
In einem Ordner bündeln
Wenn PyInstaller ohne Optionen zum myscript.py
, ist die Standardausgabe ein einzelner Ordner (namens myscript
), der eine ausführbare Datei namens myscript
(in Windows myscript.exe
) mit allen erforderlichen Abhängigkeiten enthält.
Die App kann verteilt werden, indem der Ordner in eine ZIP-Datei komprimiert wird.
Ein Ordnermodus kann explizit mit der Option -D
oder --onedir
pyinstaller myscript.py -D
Vorteile:
Einer der Hauptvorteile der Bündelung in einem einzigen Ordner besteht darin, dass Probleme leichter zu debuggen sind. Wenn ein Modul nicht importiert werden kann, kann dies durch Überprüfen des Ordners überprüft werden.
Ein weiterer Vorteil ist bei Updates zu spüren. Wenn der Code einige Änderungen enthält, die verwendeten Abhängigkeiten jedoch genau gleich sind, können Verteiler die ausführbare Datei (die normalerweise kleiner als der gesamte Ordner ist) versenden.
Nachteile
Der einzige Nachteil dieser Methode besteht darin, dass die Benutzer unter einer großen Anzahl von Dateien nach der ausführbaren Datei suchen müssen.
Benutzer können auch andere Dateien löschen / ändern, was dazu führen kann, dass die App nicht ordnungsgemäß funktioniert.
Bündeln in eine einzelne Datei
pyinstaller myscript.py -F
Die Optionen zum Generieren einer einzelnen Datei sind -F
oder --onefile
. Dadurch wird das Programm in einer einzigen myscript.exe
Datei zusammengefasst.
Eine einzelne Datei ist langsamer als das Ein-Ordner-Paket. Sie sind auch schwieriger zu debuggen.