在 ipython 下 Python 2.7 中的 KeyboardInterrupt 不可预测,我怎样才能让它*总是*中止当前评估?
Posted
技术标签:
【中文标题】在 ipython 下 Python 2.7 中的 KeyboardInterrupt 不可预测,我怎样才能让它*总是*中止当前评估?【英文标题】:KeyboardInterrupt unpredictable in Python 2.7 under ipython, how can I make it *always* abort current evaluation? 【发布时间】:2011-06-28 16:49:46 【问题描述】:我正在编写 python 代码来进行数值分析,我一直在使用 ipython 或 ipython -pylab 作为我的命令行界面。我经常遇到一些代码正在运行的情况,我需要停止它。但是,Ctrl-C 是有问题的;有时它可以工作,有时它什么也不做,有时它会退出整个过程(非常烦人。)我怎样才能让它按Ctrl-C 总是 有效吗?似乎它不起作用的时间是它在其他模块中执行代码的时间。
非常感谢。
【问题讨论】:
【参考方案1】:您可能正在运行一个正在吞噬信号的后台线程,没有真正的方法来禁止它,比较http://www.dabeaz.com/python/GIL.pdf
【讨论】:
IPython 0.10.x 为 -pylab 所做的一些事情将自动运行后台线程(以允许 GUI 事件循环运行)。我认为这应该在 IPython 0.11 中得到改进,预计在下周左右发布。以上是关于在 ipython 下 Python 2.7 中的 KeyboardInterrupt 不可预测,我怎样才能让它*总是*中止当前评估?的主要内容,如果未能解决你的问题,请参考以下文章
Centos升级Python 2.7并安装pipipython
如何在 Anaconda 2.0 中使用 Python 3.4 激活 Ipython Notebook 和 QT 控制台