求助:如何配置Emacs dap mode调试Odoo 14项目?
使用Emacs dap-mode调试Odoo 14的配置方案
方案一:直接通过dap-mode启动Odoo进程(规避attach限制)
既然dap-mode暂不支持Python的attach请求,直接用它启动Odoo进程是最稳妥的方式,步骤如下:
配置自定义调试模板
在你的Emacs配置文件(如~/.emacs.d/init.el)中添加以下代码,创建专属的Odoo调试项:(require 'dap-python) (dap-register-debug-template "Odoo 14 Debug" (list :type "python" :args "-c ./plusinn.cfg" :program "/path/to/odoo/odoo-bin" :name "Odoo 14 Debug"))替换代码里的
/path/to/odoo/odoo-bin为你实际的Odoo启动文件路径,./plusinn.cfg为项目配置文件路径。启动调试
- 打开Odoo项目内任意Python业务文件(比如模块的
.py文件) - 按
M-x输入dap-debug,选择刚创建的Odoo 14 Debug模板 - dap-mode会自动拉起Odoo进程并附加调试器,此时可正常设置断点、单步执行等
- 打开Odoo项目内任意Python业务文件(比如模块的
方案二:手动启动debugpy+通用调试客户端连接
如果坚持要用手动启动debugpy的方式,可借助dap-mode的通用调试客户端实现连接:
启动debugpy服务
在终端执行你的命令(建议指定本地地址避免网络问题):python -m debugpy --listen 127.0.0.1:1096 --wait-for-client /path/to/odoo/odoo-bin -c ./plusinn.cfg执行后进程会暂停,等待调试客户端连接。
配置通用连接模板
在Emacs配置中添加:(dap-register-debug-template "Attach to Odoo Debugpy" (list :type "debugpy" :request "attach" :name "Attach to Odoo Debugpy" :host "127.0.0.1" :port 1096))连接调试服务
- 按
M-x输入dap-debug,选择Attach to Odoo Debugpy模板 - 成功连接后即可对已启动的Odoo进程进行调试
- 按
调试注意事项
- 断点要设置在Odoo实际会触发的业务逻辑代码上,避免放在初始化类/方法中导致断点不生效
- 若连接失败,检查debugpy监听的地址、端口是否与Emacs配置一致,同时确认本地防火墙未拦截端口
- 调试前关闭其他Odoo运行实例,避免进程冲突或端口占用
内容的提问来源于stack exchange,提问作者user1632812
相关产品推荐
相关产品推荐

