这个Python图标是什么?

时间:2016-04-27 19:51:27

标签: python matplotlib ghost

有时当我在终端中运行python脚本时,python实例会打开

enter image description here

我见过matplotlib和ghost导致这个。关闭它的唯一方法似乎是关闭python终端。

这个实例究竟是什么?如何在脚本执行后自动关闭它?

2 个答案:

答案 0 :(得分:3)

在OS X上,只要您执行与GUI交互的操作,Dock就会显示Python的图标。最常见的原因是使用带有GUI后端的matplotlib(例如PyQt)。当使用交互式后端(例如PyQt)时,通常会在调用plt.show()之后看到一个火箭图标,该图标将保留在Dock上,直到窗口关闭并且与GUI交互的进程退出。

当您在Python shell中以交互方式工作时,图标停留在那里不是因为终端仍处于打开状态(或脚本仍在执行),而是因为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

答案 1 :(得分:0)

PyCharm不会认为脚本是完整的,直到它产生的任何弹出窗口关闭。当你运行matplotlib并弹出一个情节时,这很明显。如果PyCharm在脚本完成后关闭了窗口,窗口会立即关闭,甚至可以查看你的图表。

有两种方法可以完成脚本。关闭弹出窗口,或单击PyCharm中的停止按钮。