我正在尝试调试Odoo,但没有成功。Docker compose启动了Odoo的环境,因此它已经构建好了。这是我的启动文件:
{
"version": "0.2.0",
"env": {
"GEVENT_SUPPORT": "True"
},
"configurations": [
{
"name": "Debug",
"type": "python",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 5678
},
"pathMappings": [
{
"localRoot": "/local_folder/odoo",
"remoteRoot": "/remote_folder/odoo",
}
],
"justMyCode": true
}
]
}
字符串
在Dockerfile中,我使用RUN pip3 install debugpy
构建了镜像。
这是编写文件的命令条目:
ports:
- "8069:8069"
- "5678:5678"
expose:
- 8069
- 5678
command: "python3 -m debugpy --listen 0.0.0.0:5678 --wait-for-client /path_to_odoo/odoo-bin args"
型
所以容器正在等待我正常开始调试,但是当我尝试特定操作时,调试器不会在任何断点处停止。断点是红色的,所以vscode确实看到了远程文件。地址是否仍然是localhost:8069?使用netstat显示8069和5678正在侦听,但无法使调试器工作。容器中的debugpy版本为1.8,但已使用1.6但没有成功,知道问题出在哪吗
1条答案
按热度按时间bybem2ql1#
我设法让它“工作”。这是一个错误已经报告在这里:
https://github.com/microsoft/debugpy/issues/1206
当我删除GEVENT_SUPPORT=True或将其设置为False时,会遇到断点,但一旦我这样做,我就会收到垃圾邮件:
似乎正在使用gevent monkey-patching。请设置环境变量:GEVENT_SUPPORT=True以在调试器中启用gevent支持。
因此,当前能够使用vscode调试器的解决方案是注解或删除GEVENT_SUPPORT并创建一个自定义入口点,这样您就不会收到提到的垃圾邮件。
创建
odoo_custom.py
文件:字符串
最后,在你的作品中加入这个:
型
两天前,2024年1月3日,这个问题已经关闭,他们将在python 3.12+中修复它,旧的python版本仍然必须使用这个解决方案。