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

14 投票
4 回答
60473 浏览
提问于 2025-04-15 20:30

我有一个Python脚本,最后一行是用的plt.show()。当我运行这个脚本时,IDLE就会在最后一行卡住。我能看到图像,但就是无法返回到命令提示符。

在其他脚本中,我通常会用ctrl-c来中断程序(有时候这个方法不太灵),但是在用plt.show()的时候,我该怎么才能返回到命令提示符呢?Ctrl-c好像没用……

有没有其他方法可以停止这个程序呢?

这是在Windows上的IDLE,如果这有什么影响的话。

4 个回答

2

当你使用 plt.show() 这个命令时,Python会进入一个图形界面的事件循环,这个循环会一直运行,直到你关闭它。等你关闭后,命令行才会恢复,可以继续输入其他命令。

如果你使用的是 TkAgg 这个后端,那么在你按下 Ctrl+C 后,需要把鼠标移动到图形上,这样事件循环才会停止。(Tkinter 有一些特别的地方)

另外,IdleX 提供了一个支持 Matplotlib 的环境,可以在 IDLE 中使用 EventLoop.py 扩展。这样你就可以显示和操作图形,而不需要使用 plt.show()。只要在生成图形之前确保设置 plt.interactive(True) 就可以了。

7

按下 Ctrl+F6 这个组合键可以重启命令行窗口。

或者你也可以通过菜单选择 Shell,然后点击重启命令行窗口。

7

我在Windows上使用IDLE和matplotlib时,遇到过这个问题。我不太清楚具体原因,但通常按几次Ctrl-c可以解决。如果这样不行,你可以选择使用普通的解释器,或者直接把你的图保存到文件里,而不是在屏幕上显示。

这就是IDLE不太像普通的Python脚本或解释器会话的情况之一(这种情况很多)。所以我一般不太使用IDLE。

撰写回答