我有一个python脚本,它使用plt.show()
作为它的最后一条指令。当它运行时,IDLE只在最后一条指令后挂起。我得到的图像,但我没有收到提示。
在其他脚本上,我通常使用ctrl-c
来破解程序(有时不会立即生效)但是如何使用plt.show()
获得提示? Ctrl-c
不起作用......
还有其他方法可以停止该计划吗?
如果它有所不同,这在Windows上是IDLE。
答案 0 :(得分:4)
我在Windows上使用IDLE和matplotlib时遇到过这个问题。我不知道确切的原因,但Ctrl-c几次通常对我有用。如果这对您不起作用,您可以使用普通的解释器,而不是直接将您的绘图写入文件而不是屏幕。
这是IDLE不像普通Python脚本或解释器会话那样(充足)的时间之一。因此,我通常会避免IDLE。
答案 1 :(得分:2)
当你使用plt.show()
时,python子进程进入GUI工具箱的事件循环并阻塞,直到事件循环退出。退出时,会收到提示。
如果您使用的是TkAgg后端,则在按Ctrl + C后需要将鼠标移到图形上。这将导致事件循环停止。 (Tkinter有它的怪癖)
或者,IdleX使用EventLoop.py扩展名为IDLE提供Matplotlib支持。您可以在不使用plt.show()
的情况下显示数字并与数字交互。确保在生成数字之前设置plt.interactive(True)
。
答案 2 :(得分:1)
我在Canopy Python编辑器中遇到了同样的问题,我能够用CTRL+.
("点"按钮)中断python会话。希望有所帮助,或者他们可能以类似的方式做事