Ipython: 导入pyplot会导致在Mac上弹跳停靠图标

创建于 2017-01-08  ·  10评论  ·  资料来源: ipython/ipython

以下gif说明了这一点:

image

在普通的python repl中导入pyplot会导致python火箭图标出现,但不会分散注意力。 将其导入IPython内部会使图标烦人地反弹近一分钟。

这是使用Homebrew的Python框架构建。

最有用的评论

我花了10秒钟才意识到我的机器没有冻结,但是我正在查看的指针是您的.gif中的指针。

所有10条评论

您正在使用哪个后端? 运行plt.ion()%matplotlib帮助吗?

我的猜测是:当IPython与readline脱钩时,它也与PyOS_InputHook机械脱钩。 在普通的python情况下,GUI正在启动(启动弹跳),GUI代码会安装钩子,并且在启动完成后会显示一些电话回家,让火箭知道停止弹跳,因为gui主循环与代表在IPython中,该挂钩仍已安装,但没有关系,因为IPython通过提示工具箱运行。 如果启动IPython事件循环集成,则GUI会回拨并停止弹跳。

否则我可能会疯狂地离开基地。

这是使用MacOSX后端。 在pyplot导入后使用plt.ion()%matplotlib不会停止弹跳,而在进行pyplot导入之前使用%matplotlib只会导致图标开始弹跳。

tk后端会发生这种情况吗?

不, TkAgg根本没有火箭图标。

我要保持与#9312的链接
我将尝试理解它。 平@minrk。

我会说这个

    if not window_count:
        return

需要删除,因为即使没有窗口也需要运行eventloop集成...它似乎对我有用。
另一种方法是确保inputhook(context)至少执行一次循环,即使没有窗口也是如此。

    global at_least_once
    if not window_count and not at_least_once:
        at_least_once = True
        return

@ngoldbaum您介意尝试吗?
另外我想一旦您有第一个窗口,它就会停止弹跳吗?

屏幕记录也使我很高兴,因为它的打字逼真,使我对自己可怕的打字感到内。

确实,删除那个

if not window_count:
    return

块为我解决了这个问题。 正如您所怀疑的那样,创建情节会阻止反弹。

提交的#10150,将等待更多合格人员的审查。

我花了10秒钟才意识到我的机器没有冻结,但是我正在查看的指针是您的.gif中的指针。

此页面是否有帮助?
0 / 5 - 0 等级