如果中断内核在jupyter笔记本中不起作用,如何停止运行单元格

时间:2017-03-12 17:30:33

标签: jupyter-notebook

我正在使用jupyter笔记本一段时间。通常当我试图停止执行单元格时,中断内核不起作用。在这种情况下,我还能做什么,除了关闭笔记本电脑并重新启动?我想这可能是许多人的常见情况。非常感谢。

9 个答案:

答案 0 :(得分:4)

如果您对丢失所有当前定义的变量感到满意,那么请转到内核>重启将停止执行而不关闭笔记本。

答案 1 :(得分:4)

目前这也是github jupyter存储库中的一个问题, https://github.com/ipython/ipython/issues/3400 似乎没有确切的解决方案,除了杀死内核

答案 2 :(得分:3)

最近我也遇到了类似的问题。

发现Python https://github.com/ipython/ipython/issues/3400中存在一个问题,已经存在了6年了。并且在2020年3月1日之前已解决。

答案 3 :(得分:1)

添加注释(突出显示并按Ctrl- /),以负责运行(或更快地注释整个单元格)的指令,然后重新运行该单元格(Ctrl-Enter)。这将停止运行,当然也将停止输出。然后,您可以取消注释受影响的部分。这比杀死并重新启动内核要容易得多。

(请注意,仅使用[Esc] +'O'清除输出不会停止它。)

答案 4 :(得分:0)

如果iPython内核没有消失,则可以使用pyrasite将Python代码注入其中,以保存重要数据。您需要以根用户身份安装并运行吡喃铁矿,即根据需要使用sudo python -m pip install pyrasitepython3来运行。然后,您需要找出iPython内核的进程ID(PID)(例如,通过htop),例如3873。最后,编写一个脚本来将状态保存到例如文件{{1}中的泡菜中。 },并将其注入到流程中,如下所示:

inject.py

您可能需要先启用dtrace,如下所示:

sudo pyrasite 3873 inject.py

答案 5 :(得分:0)

这对我有用: -让笔记本电脑进入睡眠状态(电源选项之一) -等待10秒 -唤醒计算机(带电源按钮)

内核然后说重新连接,它要么被中断,要么可以按中断。

可能不是万无一失,但值得一试,这样您就不会浪费以前的计算时间。 (我让Windows 10运行Jupyter Notebook,但不会停止运行一段Selenium代码)

答案 6 :(得分:0)

可能有用的一件事是多次点击中断。您正在使用的库可能会捕获中断信号,并在多次接收到信号后才停止。

例如,在使用 sklearn 的 cross_val_score() 时,我发现我必须为每个交叉验证折叠中断一次。

答案 7 :(得分:-2)

您可以通过删除单元格来强制终止。我复制代码,删除单元格,创建一个新单元格,粘贴并再次执行。很有魅力。

答案 8 :(得分:-3)

我建议重新启动内核。然后即可使用。