如何从python shell导入Odoo / OpenERP插件模块?
我想更多地了解Odoo的结构。我更喜欢通过IPython做到这一点,但我不确定如何将插件导入环境。对于开始,我只想将默认的Addon加载到我的环境中。所以我只是从默认的Product模块中复制了一行。我没有修改源代码中的任何内容。我一直在浏览源代码,找出为什么我不能简单地导入我曾经使用过Python的插件。
我的Odoo安装工作正常。
$ cd /opt/odoo
$ ipython
In [1]: import openerp
In [2]: openerp.modules.module?
[not much luck]
In [3]: openerp.addons?
[not much luck either, nothing here either]
In [4]: import openerp.addons
[no error]
In [5]: import openerp.addons.decimal_precision as dp # Line from addons/product/product.py
[....]
ImportError: No module named decimal_precision
openerp.addons
除了Odoo插件模块之外还有import openerp.addons.STUFF
可以正常工作。
我觉得addons
需要初始化,但我还没有发现如何做到这一点。我开始浏览openerp.main.cli()
的代码。
openerp.tools.config.parse_config()
是朝着正确方向迈出的一步,但还不够。我也需要以某种方式传递--addons-path=addons
(因为Odoo不够聪明,无法找到自己的插件)。
答案 0 :(得分:3)
我建议您使用Odoo shell
命令:
$ ./odoo.py shell -d <your_db>
您将获得一个带有self
的交互式shell,就像您在模型方法中一样,尽管在普通的Python而不是IPython中。
它在9.0中可用,并且有一个community backport for 8.0。
另一种选择是使用ERPPeek:它是一个连接到远程Odoo服务器的Python客户端,它可以运行与服务器中使用的交互式命令类似(但不相同)的交互式命令。这样做的一个优点是您不需要安装Odoo,并且可以选择使用您喜欢的Python版本运行ERPPeek。
答案 1 :(得分:1)
后面的
openerp.addons
下可以使用插件 调用openerp.tools.config.parse_config()(以便添加 路径已知。)
所以你应该在进行任何导入之前调用openerp.tools.config.parse_config()
。
如果你需要传递任何参数,你可以这样做:openerp.tools.config.parse_config(['--addons-path=addons'])