我正在使用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
控制台似乎很好地理解了文件和断点所在的位置,并给出了函数的返回。 但它不会在断点处停止!
任何人都经历过同样的事情吗?
答案 0 :(得分:0)
在您的示例中,%debug
魔术命令仅对同一行中紧随其后的Python代码有效,即没有任何作用。
如果您希望它对整个单元格都有效,则应使用%%debug
:
%%debug -b pdbtest.py:3
pdbtest.test(4,6)