本文介绍了Spyder使用Tkinter后端策划无响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Spyder 4下(以及使用3降级后)绘制不起作用。我只是在做:

data=[1,2,3]
plt.plot(data)

输出为无响应帧:强制关闭后,我得到:

An error ocurred while starting the kernel
RROR:tornado.application:Exception in callback functools.partial(.advance_eventloop at 0x000001A802791318>)
Traceback (most recent call last):
File "pathanaconda3libsite‑packages	ornadoioloop.py", line 743, in _run_callback
ret = callback()
File "pathanaconda3libsite‑packagesipykernelkernelbase.py", line 310, in advance_eventloop
eventloop(self)
File "pathanaconda3libsite‑packagesipykerneleventloops.py", line 232, in loop_tk
app.tk.createfilehandler(stream.getsockopt(zmq.FD), READABLE, notifier)
AttributeError: '_tkinter.tkapp' object has no attribute 'createfilehandler'

(其中替换为路径)知道为什么吗?

(如果相关,我使用的是Windows、python3)

编辑

单独添加plt.show()不会对输出(仍然是空白框架)产生影响,但是感谢Neven V.和我添加的其他任务

root = tk.Tk()

def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        root.destroy()

root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop()

然后我看到了帧正在响应的曲线图。但点击Quit后,进程没有退出,我必须重新启动内核(主循环正在停止它,但如果没有它,我得到的结果是:无绘图),因此我尝试:

plt.show(block=False)
plt.pause(0.001) # Pause for interval seconds.
input("hit[enter] to end.")
plt.close('all') # all open plots are correctly closed after each run

并看到一个绘图,但在按Enter后也没有响应。

推荐答案

我在Spyder(IPython7.15.0)中使用的是独立的Python3.8.3,但当我恢复到Conda安装(Python3.6.8,IPython7.6.0)时,它被解决了。不过,我不确定这是否有帮助!

这篇关于Spyder使用Tkinter后端策划无响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 15:27