【问题标题】:Jupyter notebook stuck in pdb modeJupyter 笔记本卡在 pdb 模式
【发布时间】:2017-01-09 16:10:25
【问题描述】:

我正在使用 Jupyter (IPython) 笔记本,其中 pdb / ipdb 运行良好,除了一个问题:如果我在 pdb 模式下不小心运行了我的 pdb 所在的同一单元格,则输出消失,整个笔记本得到卡住了,我不能再运行任何命令了。我也尝试过中断或重启内核;不起作用。我唯一的选择是关闭笔记本,然后重新启动。

还有其他人遇到过这个问题/知道解决方案吗?每次我犯这个错误都必须重新启动笔记本,这对我来说非常烦人。

这里是问题的屏幕截图。下面我按预期处于 pdb 模式:

如果我随后(不小心)运行我的 pdb 所在的同一单元,则笔记本在尝试运行该单元时会卡住,并且不会运行其他任何东西(如下面的单元)。

【问题讨论】:

标签: python ipython jupyter-notebook pdb ipdb


【解决方案1】:

在较新版本的 Jupyter(我的是 6.1.4)中,按下“中断内核”按钮可以解决问题(并且保留所有变量和 python 会话):

在重新运行产生断点的单元后按下按钮,您将再次将pdb 控制台打印到单元的输出中,然后您可以再次与pdb 交互。看起来“中断内核”就像键盘中断一样工作,强制输出单元格刷新。

在重新运行后按两次i 具有相同的效果(另见this post)。

【讨论】:

    【解决方案2】:

    看来您需要重新启动。 单击菜单“内核”,选择“重新启动”,然后单击“重新启动”按钮。 现在,重新执行您的单元格。

    【讨论】:

    • 看起来它有效,但我失去了我的变量 - 猜没有更好的方法?
    • 我不知道。一个简单的中断不起作用。
    【解决方案3】:

    键入 c 并按 Enter 继续执行:

    【讨论】:

    • 我认为他的问题是当他重新运行单元格时,他无法在pdb 打开的控制台中输入内容。
    • @Wondercricket 答案并没有真正包含代码,截图在这种情况下似乎完全合适(也就是说,我怀疑 Tobias 是对的)。
    猜你喜欢
    • 2022-01-22
    • 2018-10-28
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多