首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spyder使用Tkinter后端绘制无响应图

Spyder使用Tkinter后端绘制无响应图
EN

Stack Overflow用户
提问于 2020-03-28 11:53:38
回答 1查看 230关注 0票数 0

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

代码语言:javascript
运行
复制
data=[1,2,3]
plt.plot(data)

输出是一个无响应的帧:

在强制关闭它之后,我得到:

代码语言:javascript
运行
复制
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 "path\anaconda3\lib\site‑packages\tornado\ioloop.py", line 743, in _run_callback
ret = callback()
File "path\anaconda3\lib\site‑packages\ipykernel\kernelbase.py", line 310, in advance_eventloop
eventloop(self)
File "path\anaconda3\lib\site‑packages\ipykernel\eventloops.py", line 232, in loop_tk
app.tk.createfilehandler(stream.getsockopt(zmq.FD), READABLE, notifier)
AttributeError: '_tkinter.tkapp' object has no attribute 'createfilehandler'

(其中用path替换)知道为什么吗?

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

编辑

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

代码语言:javascript
运行
复制
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之后,进程没有退出,我必须重新启动内核(主循环正在停止它,但如果没有它,我会得到结果: no plot),因此我尝试:

代码语言:javascript
运行
复制
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后也没有响应。

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 18:15:55

我在Spyder (IPython 7.15.0)中使用了独立的IPython (3.8.3),但当我恢复到conda安装(Python3.6.8,Python 7.6.0)时,这个问题就解决了。不过,我不确定这是否有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60897047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档