Overview
Dieses Mal wollte ich die Python-CUI-Anwendung wie unten gezeigt an die breite Öffentlichkeit verteilen und versuchte, eine Anwendung für Mac zu erstellen. Selbst wenn ich die erstellte App ausführe, gibt es kein Anzeichen dafür, dass sie überhaupt startet (sie wurde die ganze Zeit im Dock gebunden) ... Tatsächlich läuft das Programm ** im Hintergrund **. Da der Ausführungsstatus jedoch so aktualisiert wird, wie er ist, möchte ich, dass das Terminal darauf angezeigt und ausgeführt wird. (Übrigens funktioniert py2exe für Windows gut, wie in der folgenden Abbildung gezeigt ...)
sudo pip install py2app
Erstellen Sie als Nächstes setup.py, um den Python-Code (nennen wir ihn base.py) in eine App zu konvertieren.
py2applet --make-setup base.py
Machen Sie dann basierend auf dieser setup.py base.py zu einer App mit py2app.
python setup.py py2app
Ich denke, dies wird eine base.app erstellen.
(Auch wenn die zu diesem Zeitpunkt erstellte App ausgeführt wird, wird sie nicht in ** Terminal ** ausgeführt.)Wenn ich auf base.app doppelklicke, passiert nichts auf dem Bildschirm (im Dock gebunden oder reagiert nicht). しかし,base.app/Contents/MacOS/baseをダブルクリックするとterminalが起動し,その上でプログラムが動作しているかと思います! Dieses Mal ** Erstellen Sie ein Skript, das direkt auf diese Ausführungsdatei trifft, und konvertieren Sie es in eine App ** (nennen wir es wrap.app). Das Skript verwendet AppleScript. Wie später beschrieben wird, ist es mit AppleScript einfach, den Pfad des Ressourcenordners in der App-Datei abzurufen. Daher empfehlen wir AppleScript als zu erstellendes Skript. Schreiben Sie das folgende Skript.
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
In der ersten Zeile Pfad zur Ressource" base.app / ... "
** Ruft den absoluten Pfad von "base.app / ..." im Ressourcenordner der App ab, in der dieses Skript ausgeführt wird * *. Da der erfasste Pfad eine Aliasreferenz ist, konvertieren Sie ihn in das POSIX-Format und speichern Sie den konvertierten Zeichenfolgentyp in base_path.
Starten Sie das Terminal mit "Tell Application" Terminal "und aktivieren Sie es. Das Terminal wird nun auf dem Bildschirm angezeigt. Führen Sie dann die ausführbare Datei in base.app aus. Zu diesem Zeitpunkt führt das Hinzufügen von "&" am Ende zu einer Hintergrundoperation, und ** das Programm wird ausgeführt, auch wenn dieses Skript endet ** (wenn Sie umgekehrt "&" nicht hinzufügen, endet das Programm nicht auf dem Terminal. wrap.app endet auch nicht.)
Erstellen Sie die Datei wrap.app basierend auf der oben erstellten Datei wrapper.scpt.
Dieser Vorgang ist sehr einfach. Gehen Sie am Terminal einfach wie folgt vor:
$ osacompile -o wrap.app wrapper.scpt
Dadurch wird wrap.app erstellt.
Speichern Sie abschließend die base.app der App, die Sie ausführen möchten, auf der in 1. erstellten Konsole im Ressourcenordner in 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