pdb:在文件中设置一个不在sys.path中的断点

时间:2017-09-20 08:37:26

标签: python pdb

我正在写一个python包,我想用pdb来调试它。当我尝试在其中一个文件中设置断点时,我收到一个错误:

The specified object 'CaptureManager.frame' is not a function or was not found along sys.path

我用Google搜索,找到了解决方案:

将包含我的文件的目录附加到sys.path

sys.path.append(os.path.join(os.getcwd(),"project_cameo"))

但是几次之后,我非常恼火,因为每次重新启动调试会话时都必须这样做。这样做有“聪明”的方法吗?

2 个答案:

答案 0 :(得分:1)

您必须加载模块才能使用它(在您的情况下调试它)。 Python查看sys.path变量来加载它的模块。

来自文档,

  

<强> sys.path中:   一个字符串列表,指定模块的搜索路径。从环境变量PYTHONPATH初始化,加上依赖于安装的默认值。

它是从 PYTHONPATH 环境变量初始化的;所以你可以添加你的路径到这个env变量而不是你的模块。

或者您可以在顶部的模块中添加sys.path.append(os.path.join(os.getcwd(),"project_cameo"))行。

答案 1 :(得分:1)

根据this answer,您还可以通过将完整路径写入文件名(或相对于sys.path上目录的路径)来设置断点

例如

b /path/to/module.py:34
> Breakpoint 1 at /path/to/module.py:34