我正在使用jupyter笔记本一段时间。通常当我试图停止执行单元格时,中断内核不起作用。在这种情况下,我还能做什么,除了关闭笔记本电脑并重新启动?我想这可能是许多人的常见情况。非常感谢。
答案 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 pyrasite
或python3
来运行。然后,您需要找出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)
我建议重新启动内核。然后即可使用。