Python Jupyter笔记本卡在pdb模式下

Python Jupyter笔记本卡在pdb模式下,python,ipython,jupyter-notebook,pdb,ipdb,Python,Ipython,Jupyter Notebook,Pdb,Ipdb,我使用的是Jupyter(IPython)笔记本,其中pdb/ipdb运行良好,除了一个问题:如果我在pdb模式下意外运行pdb所在的同一个单元,输出将消失,整个笔记本将卡住,我无法再运行任何命令。我还尝试中断或重新启动内核;不起作用。我唯一的选择是关闭笔记本电脑,然后重新启动它 有没有人经历过这个问题/知道解决方案?每次我犯这个错误都要重新启动笔记本,这让我很恼火 下面是问题的截图。下面我按预期处于pdb模式: 如果我(意外地)运行我的pdb所在的同一个单元,笔记本会在尝试运行该单元时卡住,

我使用的是Jupyter(IPython)笔记本,其中pdb/ipdb运行良好,除了一个问题:如果我在pdb模式下意外运行pdb所在的同一个单元,输出将消失,整个笔记本将卡住,我无法再运行任何命令。我还尝试中断或重新启动内核;不起作用。我唯一的选择是关闭笔记本电脑,然后重新启动它

有没有人经历过这个问题/知道解决方案?每次我犯这个错误都要重新启动笔记本,这让我很恼火

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

如果我(意外地)运行我的pdb所在的同一个单元,笔记本会在尝试运行该单元时卡住,而不会运行任何其他单元(如下面的单元)


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

键入c并按Enter键继续执行:


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

在重新运行产生断点的单元后按下按钮,再次将
pdb
控制台打印到单元的输出,然后可以再次与
pdb
交互。似乎“中断内核”的工作方式类似于键盘中断,迫使输出单元刷新


重新运行后按两次
i
也有相同的效果(另请参见)。

'Kernel->Interrupt'(或Restart)退出
pdb
循环。如果你想让你的内核在运行另一个计算单元之前继续运行,你应该
q(uit)
pdb。是的,退出pdb显然是我想做的,但问题是如果我意外地运行pdb单元(这种情况经常发生…),pdb输入栏就会消失。请参阅有关此问题的错误报告。请参阅此Github问题:看起来不错,但我丢失了变量-我想没有更好的方法了?据我所知,没有。一个简单的中断不起作用。我认为他的问题是,当他重新运行单元格时,他无法在
pdb
打开的控制台中输入内容。@Wondercricket答案实际上并不包含代码,在这种情况下,屏幕截图似乎完全合适(也就是说,我怀疑Tobias是对的)。