Jupyter,Python,%Debug:在模块中设置断点不起作用

Rad*_*dar 6 python debugging jupyter-notebook

我正在使用Jupyter Notebook.

考虑以下代码:

小区1

import pdbtest  
Run Code Online (Sandbox Code Playgroud)

小区2

%debug -b pdbtest.py:3
pdbtest.test(4,6)
Run Code Online (Sandbox Code Playgroud)

细胞结束2

pdbtest.py 是一个与笔记本位于同一文件夹中的模块,包含:

def test(a,b):
    print("hello")
    a=a*2
    print("goodbye")
    b=b*2
Run Code Online (Sandbox Code Playgroud)

通常the %debug魔法应该在模块的第三行设置断点.运行时,此代码返回:

Breakpoint 1 at /home/depot/notebooks/pdbtest.py:3
NOTE: Enter 'c' at the ipdb>  prompt to continue execution.
hello
goodbye
Run Code Online (Sandbox Code Playgroud)

看起来控制台已经很好地理解了文件和断点所在的位置,并给出了函数的返回.但它并没有停在断点上!

有谁经历过同样的经历?

And*_*son 1

在您的示例中,%debugmagic 命令仅对同一行中紧随其后的 Python 代码有效,即无效。

如果您希望它对整个单元格有效,那么您应该使用%%debug

%%debug -b pdbtest.py:3
pdbtest.test(4,6)
Run Code Online (Sandbox Code Playgroud)