如何在库模块(pdb)中设置断点

Nic*_*olò 8 python python-2.7 pdb

我正在调试一个sys.path看起来像的python脚本

sys.path = ['','home/my_library', ..]
Run Code Online (Sandbox Code Playgroud)

my_library在使用pdb时在模块中设置断点时遇到麻烦.该脚本使用以下命令导入库:

import my_library as foo
Run Code Online (Sandbox Code Playgroud)

反过来,my_library通过以下方式使其模块可用:

from my_module import bar
Run Code Online (Sandbox Code Playgroud)

如何在我的脚本上运行pdb时解决my_module的代码?

PS:我尝试了以下但没有成功:

b my_module:1
b my_library.my_module:1
b my_library.bar:1
b foo.my_module:1
b foo.bar:1
Run Code Online (Sandbox Code Playgroud)

Two*_*ist 14

您使用文件名限定断点,而不是对象名称:

>>> import pdb
>>> import artwork  # module we want to break inside
>>> pdb.set_trace()
--Return--
> <console>(1)<module>()->None
(Pdb) b artwork/models.py:1
Breakpoint 1 at /home/user/projects/artwork/models.py:1
Run Code Online (Sandbox Code Playgroud)

另见这个答案.

  • 啊,是的,重点是放在斜线,而不是圆点!h!我们称之为哥伦布的蛋!!解决方法是`b my_library / my_module`。非常感谢 :-) (2认同)