我正在写一个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"))
但是几次之后,我非常恼火,因为每次重新启动调试会话时都必须这样做。这样做有“聪明”的方法吗?
答案 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