如何调试通过pip安装的Python命令行工具?
pip安装的Python命令行工具附加pdb调试方法
pip安装的可直接用tool [参数]调用的Python工具,本质都是预定义了入口的Python脚本,可通过以下三种方式附加pdb调试:
- 方法1:直接调试命令入口文件
第一步先找到工具的实际存储路径:- Linux/macOS下执行
which tool - Windows cmd下执行
where tool,PowerShell下执行Get-Command tool
拿到路径后(示例路径为/usr/local/bin/tool),直接按普通Python脚本的调试方式调用即可:
python3 -m pdb /usr/local/bin/tool [你要传给tool的参数] - Linux/macOS下执行
- 方法2:通过入口模块调用调试
如果你知道工具对应的Python包入口模块名(例如入口为tool_pkg.main),可以直接通过pdb运行入口函数:python3 -m pdb -c "from tool_pkg.main import main; import sys; sys.argv[0] = 'tool'; main()" [你要传给tool的参数] - 方法3:源码内插断点
如果你修改了工具源码,可直接在需要中断的位置插入断点代码:- Python 3.6及更早版本:
import pdb; pdb.set_trace() - Python 3.7及更高版本:
breakpoint()
插入后正常执行tool [参数],运行到断点位置就会自动进入pdb交互模式。
- Python 3.6及更早版本:
注意:如果工具安装在虚拟环境中,需要先激活对应虚拟环境再执行上述操作,避免调用到全局版本的Python或工具。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

