3

Python シェルから Odoo/OpenERP アドオン モジュールをインポートするにはどうすればよいですか?

Odoo の構造についてもっと知りたいです。私は IPython を介してそれを行うことを好みますが、アドオンを環境にインポートする方法がわかりません。最初は、デフォルトのアドオンを自分の環境にロードしたいだけです。したがって、デフォルトの Product モジュールから 1 行コピーしただけです。ソースコードは何も変更していません。ソースコードを調べて、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何もありませんがimport openerp.addons.STUFF、Odoo アドオン モジュールからは正常に動作します。

初期化する必要があると感じていaddonsますが、その方法がわかりません。からコードを調べ始めましたopenerp.main.cli()

openerp.tools.config.parse_config()正しい方向への一歩ですが、十分ではありません。私もどうにかして合格する必要があり--addons-path=addonsます (Odoo は独自のアドオンを見つけるほどスマートではないため)。

4

2 に答える 2

3

My advice is for you to use the Odoo shell command:

$ ./odoo.py shell -d <your_db>

You will get an interactive shell with self available as if you were inside a model method, although in plain Python rather than IPython. It is available in 9.0, and has a community backport for 8.0.

Another alternative is to use ERPPeek: it is a Python client, connecting to a remote Odoo server, that can run interactive commands similar to (but not the same as) the ones used in the server. An advantage of this is that you don't need Odoo installed on your side, and can choose to run ERPPeek with the Python version you prefer.

于 2016-05-12T09:37:52.750 に答える
1

openerpのソースコードによると

アドオンはopenerp.addons、openerp.tools.config.parse_config() が呼び出された後 (アドオンのパスがわかるように) で利用可能になります。

openerp.tools.config.parse_config()したがって、インポートを行う前に呼び出す必要があります。

引数を渡す必要がある場合は、次のようにできます。openerp.tools.config.parse_config(['--addons-path=addons'])

于 2014-07-14T16:34:44.653 に答える