2016-04-26 3 views
3

Ich habe eine GUI-App in Python 3 entwickelt. Ich möchte sie durch Klicken auf das Skript selbst oder in einem benutzerdefinierten Startskript starten können. Ich habe die Berechtigungen geändert und es öffnet sich jetzt mit "Python Launcher" bei Doppelklick. Aber jedes Mal wenn ich meine app laufen lasse, erhalte ich viele Fenster:Wie führe ich eine Python 3 tkinter App aus, ohne ein Terminalfenster in Mac OS X zu öffnen?

  • Meine Python-Anwendung (das ist der einzige, den ich auf dem Bildschirm sein müssen)

  • Der Python Launcher (ich konnte mit leben dieses, aber wäre es lieber versteckt werden)

  • ein Terminalfenster mit der Standard-Shell (nicht diese)

  • Ein weiteres Terminal-Fenster den Ausgang des ap brauchen zeigt p (wie print, Fehler ... Ich will nicht, um dieses Fenster)

Was ist der einfachste Weg, nur die GUI auf dem Bildschirm zu bekommen, ohne Terminal-Fenster?

Antwort

1

Anregung bu linusg Nach entdeckte ich, dass ich dies durch die Schaffung eines Apple Anwendung mit dem folgenden Code ausführen können:

do shell script "export LC_ALL=en_US.UTF-8; export LANG=en_US.UTF-8; /usr/local/bin/python3 '/Users/USER/FOLDER/SCRIPT.py' &> /dev/null &" 

Es startet die Python-Anwendung ohne Terminal Windows. Die AppleScript-Anwendung kann dann wie üblich mit einem benutzerdefinierten Symbol personalisiert und im Dock platziert werden. Wenn Sie darauf klicken, wird der Python-Interpreter gestartet, der immer noch im Dock angezeigt wird, jedoch ohne sichtbare Fenster.

Ich denke, dass dies für andere Benutzer nützlich sein kann.

+1

Sie können 'LSUIElement' (Anwendung ist Agent) in der' info.plist' Datei der gepackten '.app' Anwendung einstellen und selbst der Python Interpreter wird nicht angezeigt. Sehen Sie hier für das Detail: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/20001431-108256 – pkqxdd

+0

Es funktioniert nicht mit meiner AppleScript-Anwendung. Vielleicht gilt dieser Vorschlag nur für eine voll gepackte Anwendung mit einem eigenen Python-Interpreter ...? –

0

Durch Ändern der Dateierweiterung auf .pyw (Python Windowed), würde jedes Terminal/Shell/cmd standardmäßig ausgeblendet werden (ich weiß sogar nichts über das Einstellungsfenster).

Hoffe, das hilft! (Je nach Bedarf die Anpassung der Pfade der python3 und der Anwendung Python)

+0

Ich denke, das gilt nicht für Python 3 auf Mac. In der Tat habe ich das versucht und es tut genau das gleiche, was ich zuvor beschrieben habe. –

+0

Hmm, bei Windows funktioniert es. Ich habe etwas anderes gefunden: http://stackoverflow.com/a/1810580/5952681 – linusg

+0

Ich habe versucht, dass, aber dann bekomme ich diesen Fehler: "Fehler" Traceback (letzten Anruf zuletzt): File \ "/ Users /USER/FOLDER/SCRIPT.py \ ", Zeile 1443, in Drucken (\" - Eine Preparator-Schnittstelle gr \\ xe1fica. \ ") UnicodeEncodeError: 'Ascii' Codec kann das Zeichen '\\ xe1' nicht codieren in Position 26: Ordnungszahl nicht im Bereich (128) "Nummer 1" –

Verwandte Themen