相关疑难解决方法(0)

开始使用Python调试器pdb

我想将pdb( Python调试器)添加到我的工具箱中.什么是最好的入门方式?

python pdb

77
推荐指数
2
解决办法
5万
查看次数

使用ipdb和Tracer调试Jupyter Notebook

在Jupyter Notebook中使用调试器时,我一直遇到问题,特别是以下命令:

from IPython.core.debugger import Tracer
Tracer()() #this one triggers the debugger
Run Code Online (Sandbox Code Playgroud)

每当我使用Tracer()()时,内联调试器就会按预期显示,但是一旦在字段中输入任何命令:n(ext),s(tep)等,我就会跳到该行:

finally:
  # Reset our crash handler in place
  sys.excepthook = old_excepthook
Run Code Online (Sandbox Code Playgroud)

这是问题和尝试调试的代码的图像(确切的代码无关,因为我能够在其他笔记本上重现该问题)。

Jupyter Notebook Tracer()()输出

我正在Mac上运行OSX El Capitan,并使用Anaconda for python 2.7。这是有关通过运行获得的当前设置的一些详细信息:

conda info --all (from root env)
Run Code Online (Sandbox Code Playgroud)

系统信息通过:conda info --all from(root)env

注意,我尝试了几种不同的调试选项:pdb,ipdb和Tracer(),但是每个选项都遇到了单独的问题。根据Stackoverflow问题(使用ipdb调试Jupyter中的Python代码),此时 Tracer()似乎是标准选项。

此外,我已经能够在运行Windows 7的Dell计算机上复制此问题。

任何帮助将不胜感激!

python debugging ipython ipdb jupyter-notebook

5
推荐指数
0
解决办法
327
查看次数

调试 Jupyter Notebook:单步执行单元格

在空白的 Jupyter 笔记本中,我在单元格中输入以下代码:

from IPython.core.debugger import set_trace
set_trace()
print("hello")
Run Code Online (Sandbox Code Playgroud)

运行单元后,我进入调试模式(第一个屏幕截图)。我想跳到下一行,因此我使用命令 n(ext),就像在 pdb 中一样。但随后我并没有像我预期的那样执行打印命令,而是执行一些内部 IPython 代码(第二个屏幕截图)。如何转到单元格代码中的下一行?

在此输入图像描述

编辑:根据一个答案的建议,我用 替换set_trace(),breakpoint()但结果仍然相同。

python python-3.x ipdb jupyter-notebook

5
推荐指数
1
解决办法
5377
查看次数

标签 统计

python ×3

ipdb ×2

jupyter-notebook ×2

debugging ×1

ipython ×1

pdb ×1

python-3.x ×1