Wir werden eine Reihe von Methoden beschreiben, um eine ausführbare Datei für die GUI-Anzeige mit Python zu generieren. Ich habe wxPython in der GUI-Bibliothek verwendet, weil es in Bezug auf die Lizenz einfach zu verwenden war.
Ich verwende Anaconda für die Root-Umgebung. Da es tatsächlich in einer virtuellen Umgebung verwendet wird, denke ich, dass es in anderen Conda-basierten Umgebungen wahrscheinlich in Ordnung ist.
Anaconda https://www.continuum.io/downloads
Da wir es diesmal in einem Test ausführen möchten, erstellen wir eine neue virtuelle Umgebung mit dem Namen wxenv, ohne die Root-Umgebung zu verwenden. Führen Sie an der Eingabeaufforderung Folgendes aus (Terminal auf Mac) Hinweis: Ab Mai 2017 unterstützt PyInstaller nur Python 3.5.
command
conda create -n wxenv python=3.5.3
#Beim Erstellen mit einer Reihe von Anaconda
# conda create -n wxenv python=3.5.3 anaconda
#Bei der Überprüfung der erstellten Umgebung
# conda info -e
# conda list -n wxenv
#Beim Löschen der erstellten virtuellen Umgebung
# conda remove -n wxenv --all
Nachfolgende Arbeiten werden in der virtuellen Umgebung ausgeführt.
command
# Windows
activate wxenv
#Deaktivieren
# deactivate
# Mac
source activate wxenv
#Deaktivieren
# source deactivate
WxPython
https://wxpython.org/
Grundsätzlich scheint wxPython eine Python2-Serie zu sein, aber ich verwende wxPython, das mit 3 Serien namens Phoenix-Version funktioniert. Es wird gesagt, dass es PyPI ab April 2017 unterstützt, und es scheint, dass es durch Ausführen des folgenden Befehls installiert werden kann.
command
pip install wxpython
Erstellen Sie eine Testausführungsdatei an einem geeigneten Ort, wie unten gezeigt, und speichern Sie sie.
main.py
#! env python
# -*- coding: utf-8 -*-
import wx
import sys,os
if __name__ == '__main__':
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()
PyInstaller
command
pip install pyinstaller
Windows Installieren Sie für Windows auch Folgendes
windows
pip install pypiwin32
Geben Sie zunächst eine normale Eingabeaufforderung aus.
command
#Wechseln Sie zum Speicherort der zuvor generierten Testausführungsdatei
cd (Speicherort der Datei)
#Führen Sie PyInstaller aus (optional 1 Verzeichnis, 1 Datei, versteckte Konsole und Befehl zum Löschen des vorherigen Ausgabeergebnisses)
pyinstaller main.py -D -F -w --clean
Wenn du rennst Die generierte exe-Datei sollte in einem Ordner namens dist generiert worden sein.
Es wird auch dann generiert, wenn Sie pyinstaller normal ausführen. Möglicherweise möchten Sie jedoch zum Zeitpunkt der Generierung Feineinstellungen vornehmen. In diesem Fall können Sie eine Spezifikationsdatei erstellen, die Datei auf eine geeignete Einstellung umschreiben und dann die Einstellung von pyinstaller lesen und ausgeben lassen.
https://pythonhosted.org/PyInstaller/spec-files.html https://pythonhosted.org/PyInstaller/usage.html#options
command
#Zum Speicherort der Testausführungsdatei verschieben (nicht erforderlich, wenn bereits verschoben)
cd (Speicherort der Datei)
#Spezifikationsdatei generieren
#Name der Zieldatei, Name der zu generierenden Spezifikationsdatei, 1 Verzeichnis, 1 Datei als Option, Konsole ausgeblendet
pyi-makespec main.py -n="main" -D -F -w
Wenn Sie die oben genannten Schritte ausführen, wird eine Datei mit dem Namen main.spec generiert. In dieser Datei gibt es jede von PyInstaller verwendete Einstellung, die geändert werden kann, um eine externe Datei anzugeben. Wenn Sie es hier nicht gut generieren können, löschen Sie den Teil (-F) einer Datei. Außerdem müssen möglicherweise einige externe Bibliotheken in der Spezifikationsdatei vermerkt werden. Weitere Informationen finden Sie unter Hinzufügen von Binärdateien in Official.
command
#Spezifikationsdatei angeben und ausführen
pyinstaller main.spec
Sie sollten jetzt eine exe-Datei in einem Verzeichnis namens dist haben.
Bei der Ausführung mit PyInstaller ist es zweckmäßig, den folgenden Inhalt in eine Python-Datei zu schreiben und das Verzeichnis mit der ausführbaren Datei zum Arbeitsverzeichnis zu machen.
main.py
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
Auf einem Mac scheint wxPython nur zu funktionieren, wenn Sie pythonw anstelle von python verwenden. http://www.sevencredit.com/2015/07/31/702/
Matplotlib
Selbst wenn Matplotlib in PyInstaller registriert ist, funktioniert es aufgrund des Qt-Links häufig nicht. Um dieses Problem zu umgehen, sollte ein anderes Backend unmittelbar nach "import matplotlib" funktionieren.
import matplotlib
matplotlib.use('TkAgg')
#Folgendes wird weggelassen
https://github.com/pyinstaller/pyinstaller/issues/2857 http://chick.g.hatena.ne.jp/allegro/20091009/p3
WxFormBuilder
In meinem Fall verwendet die WxPython-Bearbeitung wxFormBuilder. https://qiita.com/mm_sys/items/716cb159ea8c9e634300
Es gab eine Möglichkeit, leichter und schneller als PyInstaller zu arbeiten, daher habe ich einen separaten Artikel erstellt.
https://qiita.com/mm_sys/items/1fd3a50a930dac3db299