首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确调试OpenERP / Odoo?

如何正确调试OpenERP / Odoo?
EN

Stack Overflow用户
提问于 2015-04-05 13:44:56
回答 2查看 1.4K关注 0票数 3

在Odoo开发期间,我在python函数中使用pdb.set_trace()作为断点,并且不断收到日志消息。

代码语言:javascript
运行
复制
 pdb.set_trace()
    -> if s['confirm_state'] in ['draft','confirmed']:

(Pdb) 2015-04-05 05:40:12,794 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:12] "POST /longpolling/poll HTTP/1.1" 200 -
2015-04-05 05:40:47,769 9981 INFO vvm_odoo_new werkzeug: 127.0.0.1 - - [05/Apr/2015 05:40:47] "POST /longpolling/poll HTTP/1.1" 200 -

我一开始以为是因为即时通讯功能,所以我把它卸载了。但我还是收到了这样的信息。

这并没有阻止我使用pdb堆栈跟踪,但这里的问题是,在pdb跟踪点输入之间,这个终端消息总是出现。

EN

回答 2

Stack Overflow用户

发布于 2016-03-22 01:21:06

您可以在启动Odoo时将--logfile=<logfile>添加到参数中-它会将标准的Odoo日志消息发送到该文件,而调试器日志将保持整洁。

例如,我在/usr/local/bin中有一个bash脚本,它调用:

代码语言:javascript
运行
复制
python /path/to/odoo/odoo.py --addons-path=/path/to/addons,/path/to/custom/addons "$@"

$@告诉脚本在末尾接受任何额外的参数,所以当我调用:

代码语言:javascript
运行
复制
odoo --logfile=~/odoospam.log

我可以调试得很好很整洁。然后,如果您想检查日志,只需使用tail -f ~/odoospam.log

还在尝试找出在docker容器中使用pdb进行调试的最好方法,当我找到合适的方法时,我会更新这一点。

编辑:找到如何在docker中执行此操作(Kudos to https://stackoverflow.com/users/941605/jamey):Docker-compose and pdb docker-compose run --service-ports odoo

票数 2
EN

Stack Overflow用户

发布于 2017-12-09 08:37:51

我建议你安装来调试Odoo:

Microsoft Code是微软公司开发的适用于

、Linux和macOS的源代码编辑器。它包括对调试、嵌入式Git控件、语法突出显示、智能代码完成、代码片段和代码重构的支持。它是免费和开源的,尽管官方下载是在私有许可下进行的。

首先,您需要在VSCode中安装。然后,如果您想要开始调试,只需单击Debug按钮,然后单击侧边栏顶部的滚轮。文件launch.json将打开,您只需将此元素添加到底部即可。

代码语言:javascript
运行
复制
{
    "name": "Python: Odoo",
    "type": "python",
    "request": "launch",
    "stopOnEntry": false,
    "pythonPath": "${config:python.pythonPath}",
    "console": "externalTerminal",
    "program": "/odoo_path/odoo.py",
    "args": [
        "--config=/odoo_config_path/.odoo_8.conf",
    ],
    "cwd": "${workspaceRoot}",
    "env": {},
    "envFile": "${workspaceRoot}/.env",
    "debugOptions": [
        "WaitOnAbnormalExit",
        "WaitOnNormalExit",
        "RedirectOutput"
    ]
}

一旦添加完成,你就可以在VSCode下运行Odoo了。有关启动配置click here的更多信息

现在您可以像往常一样创建断点。您也可以使用调试器控制台。如果像我一样使用属性:"console": "externalTerminal",则可以同时在外部控制台中显示日志

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29454507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档