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

时间:2017-01-10 09:54:01

标签: python debugging jupyter-notebook

我正在使用Jupyter Notebook。

考虑以下代码:

cell1

import pdbtest  

CELL2

%debug -b pdbtest.py:3
pdbtest.test(4,6)

cell2的结尾

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

def test(a,b):
    print("hello")
    a=a*2
    print("goodbye")
    b=b*2

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

Breakpoint 1 at /home/depot/notebooks/pdbtest.py:3
NOTE: Enter 'c' at the ipdb>  prompt to continue execution.
hello
goodbye

控制台似乎很好地理解了文件和断点所在的位置,并给出了函数的返回。 但它不会在断点处停止!

任何人都经历过同样的事情吗?

1 个答案:

答案 0 :(得分:0)

在您的示例中,%debug魔术命令仅对同一行中紧随其后的Python代码有效,即没有任何作用。

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

%%debug -b pdbtest.py:3
pdbtest.test(4,6)