GUI (WxPython) Ausführungsdatei (pyInstaller) [Windows] in Python3

GUI (WxPython) Ausführungsdatei (pyInstaller) [Windows] in Python

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.

Root-Umgebung

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

Virtuelle Umgebung

Erstellen Sie eine virtuelle Umgebung

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

Aktivierung der virtuellen Umgebung

Nachfolgende Arbeiten werden in der virtuellen Umgebung ausgeführt.

command


# Windows
activate wxenv
#Deaktivieren
# deactivate

# Mac
source activate wxenv
#Deaktivieren
# source deactivate

WxPython

Installieren Sie 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

Testlauf 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

Installation

command


pip install pyinstaller

Windows Installieren Sie für Windows auch Folgendes

windows


pip install pypiwin32

Versuch es

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.

Spezifikationsdatei

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.

Informationen zum Arbeitsverzeichnis von PyInstaller

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])))

Hinweis

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

スクリーンショット 2018-02-16 15.01.02.png

Ein anderer Weg

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

Recommended Posts

GUI (WxPython) Ausführungsdatei (pyInstaller) [Windows] in Python3
Dateioperationen in Python
Dateiverarbeitung in Python
Dateimanipulation mit Python
[GUI in Python] PyQt5-Dialog-
Vergleich der ausführbaren Python-Dateikonvertierungsbibliothek (py2exe, cx_freeze, pyinstaller)
[GUI in Python] PyQt5 -Widget-
Einführung in die GUI: PyQt5 in Python
Python-Installation in 2 Zeilen @Windows
[GUI in Python] PyQt5 -Event-
Erstellen Sie mit PyInstaller eine exe-Datei, die in einer Windows-Umgebung ohne Python funktioniert
GUI-Programmierung in Python mit Appjar
Manipulation des Datei- / Ordnerpfads in Python
Drücken Sie einen Befehl in Python (Windows)
Setzen Sie MeCab in "Windows 10; Python3.5 (64bit)"
Linebot-Erstellung und Dateifreigabe mit Python
Erstellen Sie eine Binärdatei in Python
Windows 10: Installieren der MeCab-Bibliothek für Python
Vergleich der Konvertierungsmodule für ausführbare Python-Dateien 2
Unter Windows erstellte Python-CGI-Datei
ORC, Parkettdateivorgänge in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
GUI-Erstellung in Python mit tkinter 2
Exklusive Steuerung mit Sperrdatei in Python
GUI-Erstellung in Python mit tkinter Teil 1
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Erstellen Sie eine einfache GUI-App in Python
[Python] [Windows] Serielle Kommunikation in Python über DLL
[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python
Schreiben Sie die O_SYNC-Datei in C und Python
Erstellen einer exe-Datei mit Python PyInstaller: PC friert bei paralleler Verarbeitung ein
Lesen Sie die Datei Zeile für Zeile mit Python
Lesen Sie die Datei Zeile für Zeile mit Python
[GPS] Erstellen Sie eine kml-Datei mit Python
Verstümmelte Python-Zeichen in der Windows + Git Bash-Umgebung
[Python] Lesen Sie die angegebene Zeile in der Datei
Erstellen Sie eine GIF-Datei mit Pillow in Python
DL, Bytewert und Löschen der Datei in Python3
Lesen Sie eine Datei mit verstümmelten Linien in Python
Erstellen Sie eine mit tkinter erstellte ausführbare GUI-Datei
Erstellen Sie eine Datei, die in der Skriptsprache ausgeführt werden kann
Von der Datei zur Diagrammzeichnung in Python. Grundstufe Grundstufe
[Python] Automatisierung zum Kopieren von Excel-Dateien implementiert
Installieren Sie Python 3.5.1 + numpy + scipy + α in einer Windows-Umgebung
Entwickeln Sie Windows-Apps mit Python 3 + Tkinter (exe-Datei)
Ein Forscher eines Pharmaunternehmens fasste das Scannen von Dateien in Python zusammen
Traps beim Ausführen von ausführbaren Python Windows-Dateien
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Dateidialog mit Python-GUI öffnen (tkinter.filedialog)
Beispiel, um Python Kivy in eine Datei zu packen
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Skript-Python-Datei
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python