2016-04-27 3 views
0

Иногда, когда я бег питон скриптов в терминале экземпляр питона открываетЧто это за значок Python?

enter image description here

Я видел Matplotlib и призрак причину этого. Единственный способ закрыть его, похоже, закрыть терминал python.

Что именно представляет собой этот экземпляр и как его закрыть автоматически после выполнения моего скрипта?

+1

Это когда вы скомпилируете скрипт python в двоичный файл для mac, и вы не укажете значок. Я видел это много раз. Я бы опубликовал это как ответ, но у меня больше нет деталей. – DJMcMayhem

ответ

0

PyCharm не считает подлинность скрипта до тех пор, пока не будут закрыты всплывающие окна. Это видно при запуске matplotlib и всплывает сюжет. Если PyCharm закрыл окно по завершении сценария, окно сразу закроется, прежде чем вы сможете даже просмотреть свою диаграмму.

Существует два способа завершить сценарий. Либо закройте всплывающие окна, либо нажмите кнопку остановки в PyCharm.

3

На 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