На OS X док-станция будет отображать значок для Python всякий раз, когда вы делаете что-то, что взаимодействует с графическим интерфейсом. Наиболее распространенной причиной этого является использование matplotlib
с бэкэндом GUI (например, PyQt). При использовании интерактивного бэкэнда (например, PyQt) вы обычно увидите значок ракеты после того, как вы позвоните по номеру plt.show()
, который останется на доке, пока окно не будет закрыто и не обработает взаимодействие с выходами графического интерфейса.
Когда вы работаете в интерактивном режиме в оболочке Python, значок остается там не потому, что Terminal все еще открыт (или скрипт все еще выполняется), а потому, что процесс Python по-прежнему активен. Этот процесс, вероятно, поддерживает цикл событий GUI в фоновом режиме.
Есть несколько решений:
- В
matplotlib
вы можете использовать plt.show(block=False)
отделить цикл событий, то есть значок исчезнет, как только окно закрыто.
- Установите неинтерактивный бэкэнд, например.
matplotlib.use("Agg")
, чтобы вообще не создавать окна. Конечно, вы ничего не видите.
- Изменить Python.app
.plist
для подавления иконок.
Для последних instructions here (Dr. Drang) являются следующими. Обратите внимание, что это для системы Python, для других мест, которые вы должны будете найти .plist
в другом месте:
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
Затем добавьте следующую строку перед окончательным </dict>
<key>LSUIElement</key>
<true/>
Вернуться к бинарным и починки разрешений:
sudo chmod 644 Info.plist
sudo plutil -convert binary1 Info.plist
Это когда вы скомпилируете скрипт python в двоичный файл для mac, и вы не укажете значок. Я видел это много раз. Я бы опубликовал это как ответ, но у меня больше нет деталей. – DJMcMayhem