Créez un fichier exe qui fonctionne dans un environnement Windows sans Python avec PyInstaller

Un mémo qui a été essayé et a échoué pour exécuter le programme d'apprentissage automatique créé dans un environnement Windows où Python n'est pas installé.

L'environnement est le suivant

Utilisation de base de PyInstaller

Installation

$ pip install pyinstaller

création de fichier exe

$ pyinstaller main.py --onefile

Avec cela, l'environnement d'exécution Python et les bibliothèques associées sont également combinés dans un seul fichier exe.

Cependant, s'il existe des dépendances que PyInstaller ne peut pas résoudre, le fichier exe créé générera une erreur.

Dans ce cas, construisez sans utiliser l'option --onefile et résolvez les deux points suivants un par un.

Quand Pyinstaller ne fonctionne pas bien

J'obtiens * .so not found

Vous n'importez pas les binaires des bibliothèques externes qui en dépendent. Il semble que PyInstaller importe automatiquement ce qui est directement référencé, mais il semble qu'il ne considère pas ce qui est indirectement référencé. Vous pouvez spécifier d'inclure explicitement avec l'option --add-binary. Notez que la méthode de spécification du chemin est spéciale

--add-binary "<Chemin relatif du fichier SO source>;<Chemin d'exécution relatif du répertoire de destination>"

La manière de spécifier le chemin doit avoir été décrite correctement, mais elle n'est pas placée correctement

Le cache semblait être mauvais, donc avec l'option --clean, il était placé comme spécifié.

J'obtiens un ModuleNotFoundError

De même, la bibliothèque externe n'est pas importée ici non plus. Il semble que celui qui est indirectement référencé dans le système de bibliothèque Python corresponde. Vous pouvez le spécifier avec importation cachée lors de l'exécution de pyinstaller. Lors de l'ajout, répétez la conversion exe et continuez jusqu'à ce que ModuleNotFoundError disparaisse.

Par exemple, lorsque j'ai créé un programme de classification de texte en utilisant tensorflow, cela ressemblait à ceci.

$ pyinstaller main.py ¥
--hidden-import=tensorflow.python.keras.engine.base_layer_v1 ¥
--hidden-import=tensorflow.python.ops.while_v2 ¥
--hidden-import=tensorflow.python.ops.numpy_ops

Options d'exécution finales de pyinstaller

Par exemple, cela ressemble à ceci.

$ pyinstaller main.py --onefile -y --clean \
   --hidden-import=tensorflow.python.keras.engine.base_layer_v1 \
   --hidden-import=tensorflow.python.ops.while_v2 \
   --hidden-import=tensorflow.python.ops.numpy_ops \
   --add-binary "../../../../AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/lite/experimental/microfrontend/python/ops/_audio_microfrontend_op.so;tensorflow/lite/experimental/microfrontend/python/ops" 

Recommended Posts

Créez un fichier exe qui fonctionne dans un environnement Windows sans Python avec PyInstaller
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Créer un environnement virtuel avec conda avec Python
Création d'un fichier exe avec Python PyInstaller: le PC se fige dans le traitement parallèle
Créons un script qui s'enregistre avec Ideone.com en Python.
Créez un environnement virtuel avec Python!
Créer un fichier binaire en Python
Créer un environnement d'exécution Windows Python avec VScode + Remote WSL
Créez rapidement un fichier Excel avec Python #python
Création d'un environnement Python 3.6 avec Windows + PowerShell
[GPS] Créer un fichier kml avec Python
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Créez un environnement de test Vim + Python en 1 minute
Créer un fichier GIF en utilisant Pillow en Python
Créez une application qui devine les étudiants avec Python
Créer un environnement qui utilise Python avec Eclipse
Créer un fichier qui peut être exécuté dans le langage de script
Comment créer un fichier JSON en Python
Créer un environnement de 64 bits Windows + python 2.7 + MeCab 0.996
Créer une page qui se charge indéfiniment avec python
Créer un environnement de construction python3 avec Sublime Text3
Développer des applications Windows avec Python 3 + Tkinter (fichier exe)
Créer une image avec des caractères avec python (japonais)
Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] dans Python3
Travaillez dans un environnement virtuel avec Python virtualenv.
Créer une nouvelle page en confluence avec Python
Créer un fichier au format Photoshop (.psd) avec python
Créez un fichier MIDI en Python en utilisant pretty_midi
[Docker] Créez un environnement jupyterLab (python) en 3 minutes!
Un script qui récupère les tweets avec Python, les enregistre dans un fichier externe et effectue une analyse morphologique.
Créer en Python sans fichier image factice dans Django et tester le téléchargement de l'image
Créer un diagramme de dispersion elliptique en Python sans utiliser une distribution normale multivariée
Créer un environnement Python
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Créez un environnement de développement python avec vagrant + ansible + fabric
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
Créez un environnement Open AI Gym avec Bash sur Windows 10
Exécuter un fichier Python avec une importation relative dans PyCharm
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créez un environnement shell et python décent sur Windows
Créez un faux serveur Minecraft en Python avec Quarry
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
Une histoire sur la façon dont les utilisateurs de Windows 10 ont créé un environnement pour utiliser OpenCV3 avec Python 3.5
Confirmer l'écrasement du fichier avec l'option de prendre l'objet fichier comme argument avec Python argparse
Jusqu'à ce que vous créiez un environnement d'apprentissage automatique avec Python sur Windows 7 et que vous l'exécutiez
Créer un environnement avec virtualenv
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un répertoire avec python
Essayez d'exécuter python dans l'environnement Django créé avec pipenv
[Python] Créez un écran de spécification de chemin de fichier et de dossier avec tkinter
Créer une portée locale en Python sans polluer l'espace de noms
Créer un compte enfant de connect with Stripe en Python
Créez le code qui renvoie "A et prétendant B" en python