1

我不知道如何中断在 Windows 7 操作系统上通过 Canopy 运行的 python 2.7 上的无限循环。Ctrl+C 不起作用,“运行”菜单下的“中断内核”似乎也永远不起作用。在 linux (ubuntu) 上,keyboardinterrupt ctrl+c 工作得很好,但在 Windows 上不行。

我能够停止意外无限循环的唯一方法是通过“运行”菜单下的“重新启动内核”选项。不幸的是,这意味着我失去了所有工作变量,这是不可取的。在 MATLAB 上 Ctrl+C 工作得很好。

我在 Python 上发现了几个类似的键盘中断问题,但没有使用 Enthought Canopy 环境。

任何帮助深表感谢。

4

1 回答 1

1

通常,如果循环中的代码调用 OS 服务,Ctrl-C 将仅用于中断无限循环。鉴于您对 MATLAB 的评论,我怀疑您的循环是仅计算的。一个简单的解决方法是检查循环内的按键,这也允许您定义自己的中断代码。Activestate 上有一些不错的代码,它适用于 Windows 或类 Unix 操作系统http://code.activestate.com/recipes/134892-getch-like-unbuffered-character-reading-from-stdin/

于 2015-01-17T19:47:18.233 回答