Machen Sie die Python CUI-Anwendung zu einer App für Mac

Overview

Ziel

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. controlServer.png 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 ...) control_win.png

fließen

  1. Erstellen Sie mit py2app eine Mac-Anwendung (als base.app bezeichnet) aus einem Python-Programm.
  2. Schreiben Sie ein Skript, das direkt auf die ausführbare UNIX-Datei in base.app trifft.
  3. Konvertieren Sie das Skript in eine App (nennen wir die erstellte App wrap.app).
  4. Speichern Sie base.app im Ressourcenordner in wrap.app. python_to_binary_app.png

1. Erstellen Sie mit py2app eine Mac-Anwendung

2. Erstellen Sie ein Skript, das direkt auf die ausführbare Datei in base.app trifft

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.)

3. Erstellen Sie wrap.app basierend auf dem Skript

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.

4. Speichern Sie base.app im Ressourcenordner in wrap.app

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

Referenz

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

Recommended Posts

Machen Sie die Python CUI-Anwendung zu einer App für Mac
Qt für Python App Desktop App
Erstellen einer Umgebung zum Ausführen von Python-Skripten (für Mac)
Für Mac einrichten (Python)
Aufbau einer Python-Umgebung für Mac
Installation der Python 3-Serie für Mac
Qt für Python App Selbstaktualisierung
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
[Python] Erstelle deinen eigenen LINE-Bot
Docker ausprobieren: Erstellen Sie Ihr eigenes Container-Image für eine Python-Web-App
Python3 TensorFlow für Mac-Umgebungskonstruktion
Erste Schritte mit Python für Nicht-Ingenieure
[Definitive Edition] Erstellen einer Umgebung zum Erlernen des "maschinellen Lernens" mit Python auf dem Mac
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
Erstellen Sie eine Umgebung für das in Blender integrierte Python
Lösung für Pip-Installationsfehler [Python] [Mac]
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Die Einstellung für die Amateur-Python-Umgebung (für MAC) wird erstellt
Machen Sie Ihren eigenen PC für tiefes Lernen
[Mac] Erstellen einer virtuellen Umgebung für Python
[Python] Webanwendungsdesign für maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
Erstellen Sie eine englische Wort-App mit Python
Erstellen Sie eine Desktop-App mit Python mit Electron
Eine Einführung in Python für C-Sprachprogrammierer
So erstellen Sie eine Umgebung für die Verwendung mehrerer Python-Versionen auf einem Mac
Der Weg zur Aktualisierung von Splunkbase mit Ihrer eigenen Splunk-App, die mit Python v2 / v3 kompatibel ist
Erstellen Sie eine App, die Schüler mit Python errät
[Python] matplotlib: Formatieren Sie das Diagramm für Ihre Dissertation
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Tweet (API 1.1) mit Google App Engine für Python
Erstellen Sie schnell Ihr eigenes Modul mit setuptools (Python)
Erstellen einer Umgebung für matplotlib + cartopy auf einem Mac
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!
[Python] Prognostizieren Sie die richtige Miete für Wohnungen
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Wie man Python für Anfänger schneller macht [numpy]
Python: Verwenden Sie Ihre eigene Klasse für Numpy Ndarray
Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part1 durchsuchen kann
Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part2 durchsuchen kann
Holen Sie sich AccessToken für das Dienstkonto mit dem Firebase Admin Python SDK
[Python] Erstellen einer Umgebung für die Wettbewerbsprogrammierung mit Atom (input () kann verwendet werden!) [Mac]
Ich habe versucht, mit Python (Mac OS X) eine Umgebung für maschinelles Lernen zu erstellen.