Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] dans Python3

Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] en Python

Nous allons décrire une série de méthodes pour générer un fichier exécutable pour l'affichage GUI en utilisant Python. J'ai utilisé wxPython dans la bibliothèque GUI car il était facile à utiliser comme licence.

Environnement racine

J'utilise Anaconda pour l'environnement racine. Puisqu'il est en fait utilisé dans un environnement virtuel, je pense que cela convient probablement dans d'autres environnements basés sur Conda.

Anaconda https://www.continuum.io/downloads

Environnement virtuel

Créez un environnement virtuel

Puisque nous voulons l'exécuter dans un test cette fois, nous allons créer un nouvel environnement virtuel avec le nom wxenv sans utiliser l'environnement racine. Exécutez ce qui suit à l'invite de commande (Terminal sur Mac) Remarque: depuis mai 2017, PyInstaller ne prend en charge que Python 3.5.

command


conda create -n wxenv python=3.5.3
#Lors de la création avec un ensemble d'Anaconda
# conda create -n wxenv python=3.5.3 anaconda
#Lors de la vérification de l'environnement créé
# conda info -e
# conda list -n wxenv
#Lors de la suppression de l'environnement virtuel créé
# conda remove -n wxenv --all

Activation de l'environnement virtuel

Le travail ultérieur est effectué dans l'environnement virtuel.

command


# Windows
activate wxenv
#Désactiver
# deactivate

# Mac
source activate wxenv
#Désactiver
# source deactivate

WxPython

Installez WxPython

https://wxpython.org/

Fondamentalement, wxPython semble être une série Python2, mais j'utilise wxPython qui fonctionne avec 3 séries appelées version Phoenix. On dit qu'il prend en charge PyPI à partir d'avril 2017, et il semble qu'il puisse être installé en exécutant la commande suivante.

command


pip install wxpython

Tester WxPython

Créez un fichier d'exécution de test dans un emplacement approprié comme indiqué ci-dessous et enregistrez-le.

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 Pour Windows, installez également les éléments suivants

windows


pip install pypiwin32

Essaye le

Tout d'abord, la sortie d'une invite de commande normale.

command


#Déplacer vers l'emplacement de sauvegarde du fichier d'exécution de test généré précédemment
cd (Emplacement de stockage des fichiers)
#Exécutez PyInstaller (1 répertoire facultatif, 1 fichier, console masquée et commande pour effacer le résultat de sortie précédent)

pyinstaller main.py -D -F -w --clean

Quand tu cours Le fichier exe généré doit avoir été généré dans un dossier appelé dist.

fichier spec

Il est généré même si vous exécutez pyinstaller normalement, mais vous voudrez peut-être faire des ajustements fins au moment de la génération. Dans ce cas, vous pouvez créer un fichier de spécification, réécrire le fichier dans un paramètre pratique, puis demander à pyinstaller de lire le paramètre et de le sortir.

https://pythonhosted.org/PyInstaller/spec-files.html https://pythonhosted.org/PyInstaller/usage.html#options

command


#Déplacer vers l'emplacement du fichier d'exécution du test (pas nécessaire s'il est déjà déplacé)
cd (Emplacement de stockage des fichiers)
#Générer un fichier de spécifications
#Nom du fichier cible, spécification du nom du fichier à générer, 1 répertoire, 1 fichier en option, console masquée
pyi-makespec main.py -n="main" -D -F -w

L'exécution de ce qui précède générera un fichier appelé main.spec. Dans ce fichier, il y a chaque paramètre utilisé par PyInstaller, qui peut être modifié pour spécifier un fichier externe. Si vous ne pouvez pas le générer correctement ici, essayez de supprimer la partie (-F) d'un fichier. En outre, certaines bibliothèques externes peuvent avoir besoin d'être notées dans le fichier de spécifications. Pour plus de détails, consultez Ajout de fichiers binaires dans Official.

command


#Spécifiez le fichier de spécifications et exécutez
pyinstaller main.spec

Vous devriez maintenant avoir un fichier exe dans un répertoire appelé dist.

À propos du répertoire de travail de PyInstaller

Lors de l'exécution avec PyInstaller, il est pratique d'écrire le contenu suivant dans un fichier Python et de faire du répertoire contenant le fichier exécutable le répertoire de travail.

main.py


os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))

Mise en garde

Sur Mac, wxPython ne semble pas fonctionner à moins que vous n'utilisiez pythonw au lieu de python. http://www.sevencredit.com/2015/07/31/702/

Matplotlib

Même si Matplotlib est enregistré dans PyInstaller, il ne fonctionne souvent pas en raison du lien Qt tel qu'il est. Pour contourner ce problème, un autre backend devrait fonctionner immédiatement après ʻimport matplot lib`.

import matplotlib
matplotlib.use('TkAgg')
#Ce qui suit est omis

https://github.com/pyinstaller/pyinstaller/issues/2857 http://chick.g.hatena.ne.jp/allegro/20091009/p3

WxFormBuilder

Dans mon cas, l'édition WxPython utilise wxFormBuilder. https://qiita.com/mm_sys/items/716cb159ea8c9e634300

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

Autrement

Il y avait un moyen de fonctionner plus léger et plus rapide que PyInstaller, j'ai donc créé un article séparé.

https://qiita.com/mm_sys/items/1fd3a50a930dac3db299

Recommended Posts

Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] dans Python3
Opérations sur les fichiers en Python
Traitement de fichiers en Python
Manipulation de fichiers avec Python
[GUI en Python] PyQt5-Dialog-
Comparaison des bibliothèques de conversion de fichiers exécutables python (py2exe, cx_freeze, pyinstaller)
[GUI en Python] PyQt5 -Widget-
Présentation de l'interface graphique: PyQt5 en Python
Installation de Python en 2 lignes @Windows
[GUI en Python] PyQt5 -Event-
Créez un fichier exe qui fonctionne dans un environnement Windows sans Python avec PyInstaller
Programmation GUI en Python avec Appjar
Manipulation de chemin de fichier / dossier en Python
Appuyez sur une commande en Python (Windows)
Mettez MeCab dans "Windows 10; Python3.5 (64 bits)"
Création de Linebot et partage de fichiers avec Python
Créer un fichier binaire en Python
Windows10: Installation de la bibliothèque MeCab pour python
comparaison du module de conversion de fichier exécutable python 2
Fichier CGI Python créé sous Windows
ORC, opérations de fichier Parquet en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Création d'interface graphique en python avec tkinter 2
Contrôle exclusif avec fichier de verrouillage en Python
Création d'interface graphique en python à l'aide de tkinter partie 1
Utilisation de venv dans un environnement Windows + Docker [Python]
Créer une application GUI simple en Python
[Python] [Windows] Communication série en Python à l'aide de DLL
[Python] [Windows] Faites une capture d'écran avec Python
Ecrire le fichier O_SYNC en C et Python
Création d'un fichier exe avec Python PyInstaller: le PC se fige dans le traitement parallèle
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
[GPS] Créer un fichier kml avec Python
Caractères Python déformés dans l'environnement Windows + Git Bash
[Python] Lire la ligne spécifiée dans le fichier
Créer un fichier GIF en utilisant Pillow en Python
DL, valeur d'octet et suppression de fichier en Python3
Lire un fichier contenant des lignes brouillées en Python
Créer un fichier exécutable GUI créé avec tkinter
Créer un fichier qui peut être exécuté dans le langage de script
Du dessin de fichier au graphique en Python. Élémentaire élémentaire
[Python] Automatisation implémentée pour la copie de fichiers Excel
Installez Python 3.5.1 + numpy + scipy + α dans l'environnement Windows
Développer des applications Windows avec Python 3 + Tkinter (fichier exe)
Un chercheur d'une société pharmaceutique a résumé l'analyse de fichiers en Python
Pièges piégés lors de l'exécution d'exécutables Windows Python
Créez un fichier MIDI en Python en utilisant pretty_midi
Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Exemple pour mettre Python Kivy dans un fichier
Évaluation de la vitesse de sortie du fichier CSV en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Fichier python de script
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python