如何在 eclipse 中调试 odoo 9? [Linux]

How can I debug odoo 9 in eclipse? [Linux]

我在 Linux Ubuntu 16.04

有日食霓虹灯

当我运行一个odoo服务器时,它在端口8069上一切正常

但是,当我调试同一个 odoo 服务器时,(现在,端口是 8072)它似乎陷入无限循环。在浏览器中没有出现任何东西(等待本地主机...),日志显示:

...
25138 INFO mydb openerp.modules.loading: 81 modules loaded in 0.73s, 0 queries
25138 INFO mydb openerp.modules.loading: Modules loaded.
25138 INFO mydb openerp.addons.base.ir.ir_http: Generating routing map
192.168.1.31 - - [2016-09-12 12:14:51] "GET / HTTP/1.1" 200 24082 21.358104
25138 INFO mydb openerp.addons.bus.models.bus: Bus.loop listen imbus on db postgres

这是我的odoo9-server.conf(改名为openerp-server.conf):

[options]
admin_passwd = myAdminPass
db_host = False
db_port = False
db_user = myUserName
db_password = myDatabasePass
addons_path = /etc/odoo/server/addons,/etc/odoo/server/addons_extra
logfile = None
xmlrpc_port = 8069
log_level = debug

有什么问题吗?

要在 eclipse 中调试 odoo+python 代码,请在调试透视图中启动 eclipse 并按照给定的步骤操作:

1:按 "ctr+c" 停止您的 Odoo 运行 服务器。

2:在 Eclipse 中转到菜单 "Run/Debug Configurations"。在 "Python Run" 下的配置 window 中,创建新的调试配置(双击 'Python Run')。

3:创建新的调试配置后,请按照给定的步骤操作:

3.1:在 "Project" 下的 "Main" 选项卡中,select 您工作区中的 "server" 项目或文件夹(Odoo Server 所在的文件夹)。

3.2: 在"Main Module"下写入'openerp-server'或'odoo.py'的位置。

例如:${workspace_loc:odoo/openerp-server}。 3.3: 在 "Program Arguments" 下的 "Arguments" 选项卡中,单击按钮 "Variables" 将出现新的 window。

3.4:然后点击"Edit Variables"按钮创建新的"Variable",然后会出现新的window。

3.5: 按 "New" 按钮并给你的插件路径作为值。

例如:--addons ../addons,../your_module_path 3.6: 在所有打开的windows中按Ok然后"Apply".

4:现在进入 "PyDev Package Explorer" 视图,转到 odoo 并右键单击 "openerp-server" 或 odoo.py 文件,Select 'Debug As --> Python Run'.

5:现在在"Console"你可以看到你的服务器已经启动了。

6: 现在打开你要调试的.py文件并设置一个断点。

7: 现在从 'gtk' 或 'web-client' 开始你的模块的表单,执行将在执行到断点时停止。

8:现在通过按 "F5, F6, F7" 调试您的代码,您可以看到变量的值。

来源:

要调用 pdb,请添加此行

import pdb; pdb.set_trace()任何你想设置断点的地方

然后使用 --debug 标志集启动你的 odoo,类似于

./odoo.py --addons=addons,myaddons --debug

然后当您在服务器上执行一个操作,该操作达到您调用 pdb 的点时,执行将立即停止,您将看到一个 pdb 提示符,您可以使用它来调试

终于找到解决办法了

在调试配置中,我更改了主模块的内容,并这样写:

${workspace_loc:my_project/openerp-gevent}

重要的部分是 openerp-gevent

现在,调试工作正常