如何在IDLE中停止Python程序执行
我有一个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。