Faire de l'application Python CUI une application pour Mac

Overview -Utilisez py2app pour convertir un programme créé en python en une application. -Ciblez les programmes basés sur la console, pas les applications GUI qui utilisent wxPython ou pyQt. -Lorsque vous démarrez l'application créée, le terminal démarre et le programme s'exécute dessus.

Cible

Cette fois, je voulais distribuer l'application python CUI comme indiqué ci-dessous au grand public et j'ai essayé de créer une application pour mac. controlServer.png Cependant, même si j'exécute l'application créée, il n'y a aucun signe qu'elle va démarrer (elle a été liée dans le Dock tout le temps) ... En fait, le programme ** s'exécute en arrière-plan **. Cependant, étant donné que l'état d'exécution est actualisé tel quel, je veux que le terminal apparaisse et s'exécute dessus. (À propos, py2exe pour Windows fonctionne bien, comme le montre la figure ci-dessous ...) control_win.png Le but cette fois est de créer une application qui fonctionne ** "sur la console" ** de l'application CUI créée en python, tout comme elle a été créée dans py2exe.

couler

  1. Créez une application Mac (appelée base.app) à partir d'un programme python avec py2app.
  2. Écrivez un script qui accède directement au fichier exécutable UNIX dans base.app.
  3. Convertissez le script en une application (appelons l'application créée wrap.app).
  4. Stockez base.app dans le dossier de ressources dans wrap.app. python_to_binary_app.png

1. Créez une application Mac avec py2app

2. Créez un script qui frappe directement le fichier exécutable dans base.app

Lorsque je double-clique sur base.app, rien ne se passe à l'écran (lié dans Dock ou ne répond pas). しかし,base.app/Contents/MacOS/baseをダブルクリックするとterminalが起動し,その上でプログラムが動作しているかと思います! Cette fois ** je vais créer un script qui frappe directement ce fichier d'exécution et en faire une application ** (appelons-le wrap.app). Le script utilise AppleScript. Comme cela sera décrit plus tard, il est facile d'obtenir le chemin du dossier de ressources dans le fichier d'application avec AppleScript, nous recommandons donc AppleScript comme script à créer. Écrivez le script suivant.

wrapper.scpt


set base_path to (POSIX path of (path to resource "base.app/Contents/MacOS/base")) as string

tell application "Terminal"
	activate
	do script (base_path & " &")
end tell

Dans la première ligne chemin vers la ressource" base.app / ... " ** Obtenez le chemin absolu de "base.app / ..." dans le dossier de ressources de l'application où ce script est exécuté * *. Le chemin acquis étant une référence d'alias, convertissez-le au format POSIX et stockez le type de chaîne converti dans base_path.

Démarrez le Terminal avec dire à l'application" Terminal " et activez-le. Le terminal sera maintenant affiché à l'écran. Exécutez ensuite le fichier exécutable dans base.app. À ce stade, l'ajout de & à la fin entraînera une opération en arrière-plan, et ** le programme sera exécuté même si ce script se termine ** (à l'inverse, si & n'est pas ajouté, le programme doit se terminer sur Terminal. wrap.app ne se termine pas non plus.)

3. Créez wrap.app basé sur le script

Créez wrap.app basé sur wrapper.scpt créé ci-dessus. Cette opération est très simple. Procédez simplement comme suit sur le terminal: $ osacompile -o wrap.app wrapper.scpt Cela créera wrap.app.

4. Stockez base.app dans le dossier de ressources à l'intérieur de wrap.app

Enfin, stockez le fichier base.app de l'application que vous souhaitez exécuter sur la console créée en 1. dans le dossier de ressources de wrap.app. $ cp base.app wrap.app/Contents/Resources/base.app

référence

http://qiita.com/mattintosh4/items/83e1540c31c803c3fd5e http://qiita.com/mattintosh4/items/3220a75ae6229553b87b

Recommended Posts

Faire de l'application Python CUI une application pour Mac
Qt pour l'application de bureau de l'application Python
Créer un environnement pour exécuter des scripts Python (pour Mac)
Configurer pour Mac (Python)
Construction de l'environnement Python pour Mac
Installation de la série Python 3 pour Mac
Mise à jour automatique de l'application Qt pour Python
Comment créer un package Python (écrit pour un stagiaire)
[Python] Créez votre propre bot LINE
Essayez docker: créez votre propre image de conteneur pour une application Web Python
Construction de l'environnement Python3 TensorFlow pour Mac
Premiers pas avec Python pour les non-ingénieurs
[Definitive Edition] Création d'un environnement pour l'apprentissage du «machine learning» à l'aide de Python sur Mac
Explication de la création d'une application pour afficher des images et dessiner avec Python
Créer un environnement pour Python intégré à Blender
Solution pour l'erreur d'installation de pip [Python] [Mac]
Créez un environnement python sur votre Mac
Le paramètre d'environnement Python amateur (pour MAC) est en cours de création
Créez votre propre PC pour un apprentissage en profondeur
[Mac] Création d'un environnement virtuel pour Python
[Python] Conception d'applications Web pour l'apprentissage automatique
Une introduction à Python pour l'apprentissage automatique
Créez une application de mots anglais avec python
Créez une application de bureau avec Python avec Electron
Une introduction à Python pour les programmeurs en langage C
Comment créer un environnement pour utiliser plusieurs versions de Python sur un Mac
La voie de la mise à jour de Splunkbase avec votre propre application Splunk compatible avec Python v2 / v3
Créez une application qui devine les étudiants avec Python
[Python] matplotlib: Formatez le diagramme de votre mémoire
Construire un environnement Anaconda pour Python avec pyenv
Tweet (API 1.1) avec Google App Engine pour Python
Créez rapidement votre propre module avec setuptools (python)
Créer un environnement pour matplotlib + cartopy sur un Mac
Créez un environnement de développement Python sur votre Mac
[Introduction à l'application Udemy Python3 +] 43. instruction for else
N'utilisez pas readlines () dans votre instruction Python for!
[Python] Prédire le loyer approprié pour les appartements
Faisons un module pour Python en utilisant SWIG
Comment rendre le Python des débutants plus rapide [numpy]
python: utilisez votre propre classe pour numpy ndarray
Créons une application capable de rechercher des images similaires avec Python et Flask Part1
Créons une application capable de rechercher des images similaires avec Python et Flask Part2
Obtenez AccessToken pour le compte de service avec le SDK Firebase Admin Python
[Python] Construire un environnement pour la programmation de compétition avec Atom (input () peut être utilisé!) [Mac]
J'ai essayé de créer un environnement d'apprentissage automatique avec Python (Mac OS X)