Auf OS X zeigt das Dock ein Symbol für Python an, wenn Sie etwas tun, das mit der GUI interagiert. Der häufigste Grund hierfür ist die Verwendung von matplotlib
mit einem GUI-Backend (z. B. PyQt). Wenn Sie ein interaktives Backend (z. B. PyQt) verwenden, sehen Sie normalerweise nach dem Aufruf plt.show()
ein Raketensymbol, das im Dock verbleibt, bis das Fenster geschlossen ist und der Prozess mit der GUI beendet wird.
Wenn Sie interaktiv in der Python-Shell arbeiten, bleibt das Symbol dort nicht, weil das Terminal noch offen ist (oder Skript wird noch ausgeführt), sondern weil der Python-Prozess noch aktiv ist. Dieser Prozess führt wahrscheinlich eine GUI-Ereignisschleife im Hintergrund.
Es gibt ein paar Lösungen:
- In
matplotlib
können Sie plt.show(block=False)
verwenden, um die Ereignisschleife zu lösen, das Symbol bedeutet, verschwindet, sobald das Fenster geschlossen ist.
- Legen Sie ein nicht interaktives Back-End, z.
matplotlib.use("Agg")
zu vermeiden, die Fenster überhaupt zu erstellen. Natürlich kannst du nichts sehen.
- Ändern Sie die Python.app
.plist
, um Symbole zu unterdrücken.
Für die letzteren sind die instructions here (Dr. Drang) wie folgt. Hinweis: Dies ist für das System Python ist, für andere Standorte müssen Sie die .plist
an anderer Stelle finden:
cd /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/
# NB the following file is binary, use a compatible editor or convert with
sudo plutil -convert xml1 Info.plist # Convert to XML
sudo chmod 666 Info.plist # Make editable
Dann folgende vor den endgültigen </dict>
<key>LSUIElement</key>
<true/>
Zurück zur binären und fix Berechtigungen hinzufügen:
sudo chmod 644 Info.plist
sudo plutil -convert binary1 Info.plist
Es ist, wenn Sie ein Python-Skript in eine Binärdatei für Mac kompilieren, und Sie kein Symbol angeben. Ich habe es schon oft gesehen. Ich würde das als Antwort posten, aber ich habe keine Details mehr. – DJMcMayhem