1

我是 OpenERP 和 Python 的新手,我试图了解 py 文件中的各种功能。所有文件中都使用了一个导入函数,通常分为两部分:第一部分似乎是指 Python 库(称为模块?),from datetime import datetime或者from dateutil.relativedelta import relativedelta但第二部分,我不知道它指的是什么。

我想知道以下功能指的是什么:

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服务(默认8070端口连接openerp)

decimal_precision是处理浮点数的模块,如发票中的税费取决于您的选择 2 位小数或 3 位小数等...这也取决于您提供的配置,该模块负责为所有用户保持相同的配置此类对象(提供相同的小数精度)

_是一个gettext.gettext别名,用于为您为所选数据库安装的所有语言保留翻译信息。

地点:

netsvc $Server_path/openerp/netsvc.py

pooler $Server_path/openerp/pooler.py

$server_path - 是你安装 openerp 服务器的地方。

decision_precision你可以在 openerp 里面找到一个标准的 openerp 模块。

于 2012-08-08T07:17:20.547 回答
1

听起来你已经安装了一些包含编译文件而不是原始 Python 源代码的 OpenERP 版本。

我建议您通过从启动板检查源代码并从源代码运行服务器来重新配置您的开发环境。就个人而言,我喜欢在 Eclipse 下使用 PyDev 运行它,因为它有一个很好的调试器。

对于 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 --xmlrpc-port=9071

于 2012-08-08T18:47:20.417 回答
0

它们是包和模块位于sys.path.

于 2012-08-08T07:03:26.917 回答