(22)odoo 安装旧模块报错处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(22)odoo 安装旧模块报错处理相关的知识,希望对你有一定的参考价值。

一些老版本的模块没有得到升级,所以经常碰到模块无法安装的问题。

No module name osv

将模块的 from osv import osv,fields 改为 from openerp.osv import osv,fields

其实这是一个编程规范问题,旧版模块代码里很多这种导入方式,一个一个改对于不懂代码的或者openerp新手是不现实的。

众所周知,openerp的运行入口是openerp-server.py,在6.0及之前版本,这个入口文件和其他server包是在同一个目录的,
但是openerp6.1开始这个目录被提升了一个目录。server包都放在了一个叫做 openerp的目录下,
而 openerp-server.py 被重命名为 openerp-server(没有后缀名)和openerp目录同级。
而python的特性决定它在导入包的时候是按入口文件的位置找相对路径的。
所以这个顶级目录结构改动的结果就是,我们需要在所有的import语句里加上openerp.这个前缀。

必须有个临时解决方案,那就是 openerp/conf/deprecation.py 这个文件

里面定义了一个变量,open_openerp_namespace,在7.0里这个值是True,也就是说即使你模块里import osv也不会报错,
因为server乖乖滴去openerp这个目录去找osv目录,而不会报错。

但是8.0不一样了,openerp公司已经改过了所有他们负责的模块,他们不再需要这个临时方案了,
然后我们看到在8.0版本里这个变量值为设为了 False

这就是7.0里可以安装的oecn_base_fonts、auto_backup等模块在8.0里无法安装的原因。

如果你希望使用其他非官方模块,我建议你把这个值改成 True

以上是关于(22)odoo 安装旧模块报错处理的主要内容,如果未能解决你的问题,请参考以下文章

odoo首页添加自定义模块,修改代码后报错,请问各路大神啥情况

odoo自定义模块的安装动作

Odoo安装教程12-创建新的插件模块之设置视图层第一讲

Odoo安装教程12-创建新的插件模块之设置视图层第一讲

odoo 怎么重写模块默认方法

odoo开发安装插件教程小技巧