PyCharm调试Odoo模块无法识别断点问题求助
PyCharm调试Odoo模块断点不触发的排查方案
1. 匹配pydevd-pycharm版本
Ubuntu终端执行命令安装对应版本的依赖包,版本必须和你的PyCharm版本完全匹配(比如PyCharm 2023.2就安装~=2023.2版本):
pip install pydevd-pycharm~=202X.X.X
版本不兼容是调试连接失败的高频原因。
2. 打通网络与端口
- 把代码里的
<HOST_IP>替换为PyCharm所在机器的真实可访问IP(不要用localhost,除非Odoo和PyCharm在同一台设备) - 开放Ubuntu的5234端口:
sudo ufw allow 5234/tcp
- 在Ubuntu终端用
nc -zv <PYCHARM_IP> 5234测试端口连通性,不通的话排查PyCharm机器的防火墙设置
3. 启动PyCharm远程监听
- 打开PyCharm,进入
Run > Edit Configurations,新增Python Remote Debug配置:- 自定义配置名称(比如Odoo Remote Debug)
- 主机填PyCharm所在机器的IP,端口设为5234
- 点击调试按钮启动监听,看到控制台显示
Waiting for connection from Python debug server at...即为正常
4. 确保调试代码被执行
你把pydevd_pycharm.settrace()放在__init__.py中,但这个文件仅在模块被导入时执行。如果你的Map Price逻辑是在产品模型的计算字段、视图渲染方法或控制器里,__init__.py的代码可能根本没走到。
直接把调试代码移到实际执行的代码段中,比如product.template里计算Map Price的方法内部,确保代码执行时会触发调试连接。
5. 调整Odoo启动参数
- 禁止用多进程模式启动Odoo,多进程会导致调试连接失效,强制单进程启动:
./odoo-bin -c odoo.conf --workers 0
- 重启Odoo,确保调试代码被加载生效
6. 规范断点设置
- 断点必须设在可执行代码行上,不要在空行、注释行或函数定义行(
def所在行)设置,要放在函数内部的有效代码行 - 检查PyCharm里的断点是否为红色实心圆点——空心圆点表示代码未被PyCharm识别,需确认项目代码路径关联正确
内容的提问来源于stack exchange,提问作者Lubomir
相关产品推荐
相关产品推荐

