本文主要是介绍ipdb,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考:
ipdb 使用小记
- 修改损失函数时会涉及到很多矩阵运算,矩阵运算中维度的对齐需要多次调试,之前调试常用手段是print方法,但是这种方法会让代码显得很乱。每次 import tensorflow as tf 都要十几秒,然后 print 完之后想进一步看其他变量的信息,又要重新执行一遍。
- python 提供了一个默认的 debugger:pdb,而 ipdb 则是 pdb 的增强版,提供了补全、语法高亮等功能,类似于 ipython 与 python 默认的交互终端的关系,通过 pip install ipdb 即可安装 ipdb。
- ipdb 的使用方法一般有两种:集成到源代码或通过命令交互。
- 集成到源代码可以直接在代码指定位置插入断点。如下所示:
import ipdb
var1 = 23
ipdb.set_trace()
- 上面的代码会在执行完 var1 = 23 这条语句之后停止,展开 ipython 环境,之后就可以自由地调试了。
- 这种方法的缺点:
一:插入的断点代码会污染原来的代码空间
二:每次插入断点都需要修改源码 - 交互式的命令式调试方法更加方便。启动命令式调试环境的方法
python -m ipdb code.py
- 接着就是通过一些常用的命令来进行 debug了,如上面插入断点的样例代码就可以通过以下命令达到同样效果:
python -m ipdb code.py
ipdb> b 3
Breakpoint 1 at /test.py:3
ipdb> c
- 上面的命令 b 3 表示在第三行设置一个断点,然后通过命令 c 一直执行至断点处,接着就会展开 ipython 环境进行调试了。b 和 c 分别代表了 break 和 continue.
这篇关于ipdb的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!