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

Posted

技术标签:

【中文标题】如何在 IDLE 中停止 Python 程序的执行【英文标题】:How to stop Python program execution in IDLE 【发布时间】:2011-01-28 11:00:53 【问题描述】:

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

在其他脚本中,我通常使用ctrl-c 来中断程序(有时不能立即运行),但是如何使用plt.show() 恢复提示? Ctrl-c 不起作用...

还有其他方法可以停止程序吗?

这在 Windows 上是 IDLE,如果有什么不同的话。

【问题讨论】:

这里有一些选项:***.com/questions/1219394 【参考方案1】:

我在 Canopy Python 编辑器中遇到了同样的问题,我能够使用 CTRL+.(“点”按钮)中断 python 会话。希望有帮助,或者他们可能以类似的方式做事

【讨论】:

【参考方案2】:

Ctrl+F6 (重启外壳)

或Shell->重启Shell

【讨论】:

【参考方案3】:

当您使用plt.show() 时,python 子进程进入 GUI 工具包的事件循环并阻塞,直到事件循环退出。当它退出时,你会得到提示。

如果您使用的是 TkAgg 后端,则需要在按下 Ctrl+C 后将鼠标移到图形上。这将导致事件循环停止。 (Tkinter 有它的怪癖)

或者,IdleX 使用 EventLoop.py 扩展名提供带有 IDLE 的 Matplotlib 支持。您可以在不使用plt.show() 的情况下显示图形并与之交互。请务必在生成数字之前设置plt.interactive(True)

【讨论】:

【参考方案4】:

我在 Windows 上使用 IDLE 和 matplotlib 时发现了这个问题。我不知道确切的原因,但是 Ctrl-c 几次通常对我有用。如果这对您不起作用,您可以使用普通解释器而不是将绘图直接写入文件而不是屏幕。

这是 IDLE 的行为不像普通 Python 脚本或解释器会话的那些(大量)时间之一。因此,我通常避免 IDLE。

【讨论】:

不幸的是,Windows 上的选项不是很好。我直接使用交互式解释器(尽管 cmd.exe 不是那么好)并从 gvim 调用 Python 来运行脚本。任意数量的编辑器和 IDE 都可以直接调用 Python,其中许多都列在 wiki.python.org/moin/IntegratedDevelopmentEnvironments 上。 iPython 可能会遇到一些与 IDLE 相同的问题,但我怀疑它会竭尽全力让 matplotlib 工作(我自己从不使用它,所以我不能保证)。 当在 IDLE 的 Shell 中按下 ^C 时,Shell 会向执行进程发送一条消息以在此处引发中断。大多数情况下,如果在 Python 下直接运行时按下 ^C,它就会失败。有一些完全独立于 IDLE 的原因,为什么 Python 不能总是优雅地停止并在 ^C 中断信号时发出 >>> 提示。

以上是关于如何在 IDLE 中停止 Python 程序的执行的主要内容,如果未能解决你的问题,请参考以下文章

如何停止运行没有 GUI 窗口的 Python .pyw 脚本?

如何运行Python程序的方法

idle如何从三个点变为

那能运行Pythonidle的操作系统

Ping 服务以从 IDLE 中停止 OpenShift 应用程序?

如何打开python idle