Comment implémenter Python EXE pour Windows avec le conteneur Docker

Pour ceux qui veulent rapidement EXE le code Python utilisé sous Linux sur Docker pour le transmettre à d'autres.

Conteneur à utiliser

Certaines personnes ont distribué un conteneur qui exécute PyInstaller sous Windows, nous allons donc l'utiliser.

Lorsque je lis le Dockerfile, il semble que j'utilise un logiciel qui exécute les applications Windows suivantes sous Linux.

--Site externe: WINE HQ

Explication de Wine HQ sur le HAUT du site (la traduction japonaise n'est pas appropriée)

Wine (à l'origine un acronyme pour «Wine Is Not an Emulator») est une couche de compatibilité qui vous permet d'exécuter des applications Windows sur des systèmes d'exploitation compatibles POSIX tels que Linux, macOS et BSD. Plutôt que de simuler la logique Windows interne comme les machines virtuelles et les émulateurs, Wine traduit les appels d'API Windows en appels POSIX à la volée, éliminant les pénalités de performances et de mémoire par d'autres moyens et créant des applications Windows. Il peut être intégré proprement dans votre bureau.

Exemple de commande d'exécution

Comme il est souvent exécuté plusieurs fois, il est exécuté comme un script shell. Si vous exécutez le script shell suivant dans le répertoire contenant le code source, les fichiers build, dist et .spec seront générés dans la même hiérarchie. Le fichier EXE créé pour Windows se trouve dans le répertoire dist.

build.sh


#! /bin/bash
docker run --rm -v "$(pwd):/src/" --entrypoint /bin/sh cdrx/pyinstaller-windows \
-c "/usr/bin/pip install -r requirements.txt && pyinstaller main.py --noconsole --onefile --clean"

-- docker run: exécuter la commande de conteneur -- -rm: efface le conteneur après la fin du conteneur -- -v "$ (pwd): / src /" `` `: Montez le répertoire courant du système d'exploitation hôte sur / src / du système d'exploitation du conteneur -- --entrypoint / bin / sh Spécifie la personne à qui la commande est passée lors de l'exécution (spécifiez sh cette fois) -- cdrx / pyinstaller-windows: Spécifiez l'image à exécuter. Vous pouvez également créer un fichier exécutable pour Linux en utilisant `` cdrx / pyinstaller-linux ''. Eh bien, je pense que vous pouvez le faire avec un conteneur de développement normal. -- -c "~ hogehoge ~" `` `: Spécifiez la commande à exécuter dans le conteneur -- / usr / bin / pip install -r requirements.txt: Installer les dépendances avec pip. Ajoutez si vous devez installer apt, etc. -- pyinstaller main.py --noconsole --onefile --clean: La commande de conversion exe du sujet principal. Pas de console, 1 fichier, spécifiez les options pour effacer les résultats précédents.

Résultat d'exécution

Jusqu'à présent, j'ai converti environ 3 types de code en exe et l'ai exécuté sur win10 et win8, mais cela a commencé sans aucun problème. De plus, le code de PySimpleGUI pourrait être converti en exe sans aucun problème, je voudrais donc le recommander à ceux qui souhaitent créer rapidement une interface graphique pour Windows avec Python.

Recommended Posts

Comment implémenter Python EXE pour Windows avec le conteneur Docker
Comment installer Python [Windows]
Comment développer en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Comment exécuter python dans l'espace virtuel (pour MacOS)
[Python] Comment faire PCA avec Python
Comment collecter des images en Python
Comment mettre en œuvre 100 coups de science des données pour les débutants en science des données (pour Windows 10 Home)
Comment définir plusieurs variables dans une instruction Python for
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment supprimer un conteneur Docker
Comment gérer le japonais avec Python
Comment se connecter à Docker + NGINX
[Pour les débutants] Comment implémenter l'exemple de code O'reilly dans Google Colab
Comment définir les paramètres CORS pour le service de stockage Azure dans Python
J'ai essayé d'implémenter PLSA en Python
[Introduction à Python] Comment utiliser la classe en Python?
J'ai essayé d'implémenter la permutation en Python
Comment définir dynamiquement des variables en Python
Utilisation de venv dans un environnement Windows + Docker [Python]
Comment faire R chartr () en Python
Comment convertir Python en fichier exe
[Itertools.permutations] Comment créer une séquence en Python
J'ai essayé d'implémenter PLSA dans Python 2
Comment implémenter un sérialiseur imbriqué avec drf-flex-fields
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
J'ai essayé d'implémenter ADALINE en Python
Comment installer le sous-système Windows pour Linux
J'ai essayé d'implémenter PPO en Python
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Comment utiliser "deque" pour les données Python
Comment utiliser les expressions régulières en Python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Comment installer python3 avec docker centos
Comment rendre le nom du conteneur accessible dans Docker en tant que sous-domaine
Comment utiliser la bibliothèque C en Python
Essayez d'implémenter Oni Mai Tsuji Miserable avec python
Comment recevoir des arguments de ligne de commande en Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment déboguer un programme Python en se connectant à distance à un conteneur Docker dans un environnement WSL2 avec VS Code
Comment générer une séquence en Python et C ++
Comment implémenter la fonctionnalité de type helper Rails dans Django
Comment incorporer des variables dans des chaînes python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment créer un fichier JSON en Python