python - Jupyter、Python、%调试 : Setting breakpoint in module doesn't work

标签 python debugging jupyter-notebook

我正在使用 Jupyter Notebook。

考虑以下代码:

单元格 1

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

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

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

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

有人遇到过同样的情况吗?

最佳答案

在您的示例中,%debug 魔术命令仅对同一行中跟在它后面的 Python 代码有效,即什么都没有。

如果你想让它对整个单元格有效,那么你应该使用%%debug:

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

关于python - Jupyter、Python、%调试 : Setting breakpoint in module doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41565909/

相关文章:

debugging - mov eax, 大 fs :30h

ios - 应用内购买在发布后使​​应用崩溃

IPython - 使用自定义魔法导入/填充命名空间

python - 无法使用 apt、pip、pip3、easy_install 等任何命令安装 pyzmq

python - 图表未在 Web 浏览器中显示 |阴谋 | Python

python - pyusb:功能一次运行良好,第二次失败

python - 对于 Python 沙盒,是否有替代 rexec 的方法?

python - 在 Jython 中使用 PyCrypto 导入问题

c++ - 使用 CMake 导入错误编译带有嵌入式 Python 的 C++

java - 如何阅读和理解 java 堆栈跟踪?