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.
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. 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 ...) 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.
sudo pip install py2app
Ensuite, créez setup.py pour convertir le code python (appelons-le base.py) en une application.
py2applet --make-setup base.py
Ensuite, sur la base de ce setup.py, transformez base.py en une application avec py2app.
python setup.py py2app
Je pense que cela va créer une base.app.
(Même si l'application créée à ce stade est exécutée, elle ne sera pas exécutée dans ** Terminal **.)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.)
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.
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
http://qiita.com/mattintosh4/items/83e1540c31c803c3fd5e http://qiita.com/mattintosh4/items/3220a75ae6229553b87b
Recommended Posts