以下gif说明了这一点:
在普通的python repl中导入pyplot会导致python火箭图标出现,但不会分散注意力。 将其导入IPython内部会使图标烦人地反弹近一分钟。
这是使用Homebrew的Python框架构建。
您正在使用哪个后端? 运行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中的指针。
最有用的评论
我花了10秒钟才意识到我的机器没有冻结,但是我正在查看的指针是您的.gif中的指针。