如何在IDLE中停止Python程序的执行

时间:2010-03-17 07:04:20

标签: python matplotlib tkinter break python-idle

我有一个python脚本,它使用plt.show()作为它的最后一条指令。当它运行时,IDLE只在最后一条指令后挂起。我得到的图像,但我没有收到提示。

在其他脚本上,我通常使用ctrl-c来破解程序(有时不会立即生效)但是如何使用plt.show()获得提示? Ctrl-c不起作用......

还有其他方法可以停止该计划吗?

如果它有所不同,这在Windows上是IDLE。

3 个答案:

答案 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会话。希望有所帮助,或者他们可能以类似的方式做事