1

私は OpenERP と Python が初めてで、py ファイルのさまざまな機能を理解しようとしています。すべてのファイルで使用されるインポート関数があり、通常は 2 つの部分に分けられます。最初の部分は Python ライブラリ (モジュールと呼ばれますか?) を参照しているようですfrom datetime import datetimefrom dateutil.relativedelta import relativedelta、2 番目の部分は何を参照しているのかわかりません。

次の関数が何を参照しているのか知りたいです。

import netsvc
import pooler
from osv import fields, osv
import decimal_precision as dp
from tools.translate import _

netsvc、pooler、osv、decimal_precision、tools_translate とは何ですか? それらがopenERPモジュールである場合、それらの背後にあるコードはどこにありますか?それ以外は何ですか?

それらすべてを説明できる人、および他の同様のものを知っている場合は、誰にでも感謝します。

4

6 に答える 6

3

これらはすべて openerp python モジュールです。

./server/6.1/openerp/netsvc.py
./server/6.1/openerp/pooler.py
./server/6.1/openerp/osv/osv.py
./server/6.1/openerp/tools

それを除いてdecimal_precisionopenerp moduleアドオンで見つけることができます:

./addons/6.1/decimal_precision

これらのインポートはすべてrelative import、コーディングの態度が悪いことです (関連する pep を参照してください)。幸いなことに、openerp チームは のようなより良いアプローチに向けて動いていますfrom openerp.addons import this

于 2012-08-08T07:17:39.890 に答える
2

これらは Python モジュールです。これらは標準ライブラリの一部ではなく、インストールしたサードパーティ ライブラリの一部です。それらは、OpenERP の一部であるか、OpenERP で使用される他のライブラリの一部である可能性があります。対話型インタープリターを開くと、モジュールをインポートしてから、それらの__file__属性を調べてファイルの場所を確認できます。たとえば、guineapyg私がインストールしたというランダムなモジュールの場合:

>>> import guineapyg
>>> guineapyg.__file__
'C:\\Documents and Settings\\BrenBarn\\My Documents\\Python\\guineapyg\\guineapyg.py'

Python チュートリアルを読んで、モジュールのインポートやその他の基本的な Python の操作に慣れてください。

于 2012-08-08T07:04:46.827 に答える
2

コードは $server/openerp/ にあります。

すべて $server/openerp/ への相対パスです

ここで、「$server」は OpenERP サーバーのパスです

于 2012-08-08T07:14:20.773 に答える
2

poolerは、インストールしたすべてのモジュールのすべてのオブジェクトを追跡し、データベースごとに維持する python モジュールです。

netsvcモジュールはサービスを担当しsocketます(openerpを接続するためのデフォルトの8070ポート)

decimal_precision請求書の税額のように、必要な浮動小数点数を処理するモジュールですそのようなオブジェクト (同じ小数精度を提供するため)

_gettext.gettext選択したデータベースにインストールしたすべての言語に翻訳された情報を保持するためのエイリアスです。

場所:

netsvc $Server_path/openerp/netsvc.py

pooler $Server_path/openerp/pooler.py

$server_path - openerp サーバーをインストールした場所です。

decision_precisionopenerp アドオンの内部には、標準の openerp モジュールがあります。

于 2012-08-08T07:17:20.547 に答える
1

生の Python ソース コードの代わりにコンパイル済みファイルを含む OpenERP のバージョンをインストールしたようです。

ランチパッドからソースをチェックアウトし、ソース コードからサーバーを実行して、開発環境を再構成することをお勧めします。個人的には、PyDev を使用して Eclipse で実行するのが好きです。これには優れたデバッガーがあるからです。

Eclipse でのプロジェクト構成については、ランチパッドから各ブランチをチェックアウトし、それぞれをプロジェクトとして Eclipse ワークスペースにインポートしました。起動の詳細は、6.0 と 6.1 で少し異なります。サーバープロジェクトの各バージョンを起動するためのコマンド ライン引数は次のとおりです。

6.0:

--addons-path ${workspace_loc:openerp-addons-6.0} --config ${workspace_loc:openerp-config/src/server.config} --xmlrpc-port=9069 --netrpc-port=9070 --xmlrpcs-ポート=9071

6.1 では、サーバーで起動する Web クライアントが必要です。

--addons-path ${workspace_loc:openerp-addons-trunk},${workspace_loc:openerp-web-trunk}/addons,${workspace_loc:openerp-migration} --config ${workspace_loc:openerp-config/src/ server.config} --xmlrpc-port=9069 --netrpc-port=9070 --xmlrpcs-port=9071

于 2012-08-08T18:47:20.417 に答える
0

それらはパッケージとモジュールであり、内のどこかにありますsys.path

于 2012-08-08T07:03:26.917 に答える