Odoo 11无法加载自定义模块,请求技术排查协助
解决Odoo 11自定义模块无法显示的问题
我看到你用Yenthe的脚本安装了Odoo 11,已经把自定义addons路径加到配置文件里,但更新应用列表后还是看不到自己的模块,而且已经给了权限、日志也没报错。这种情况通常是一些容易忽略的细节导致的,我给你列几个排查步骤,你逐一试试:
1. 确认自定义addons路径真的被Odoo识别
别光看配置文件,要验证Odoo是否真的加载了这个路径,以及路径本身没问题:
- 登录服务器执行
ls -ld /odoo/custom/addons,确认这个文件夹确实存在 - 用odoo用户身份检查权限:
sudo -u odoo ls /odoo/custom/addons,如果能列出模块说明权限没问题;如果报错,可能是父目录(比如/odoo/custom)的权限没给对 - 查看Odoo启动参数:执行
ps aux | grep odoo,看输出里有没有--config=/etc/odoo/[你的配置文件名].conf,如果没指定,Odoo可能用的是默认的~/.odoorc,你修改的/etc下的文件就没生效
2. 检查自定义模块的结构是否符合Odoo 11要求
Odoo对模块结构有严格要求,少了关键文件或字段就不会被识别:
- 模块根目录必须有
__manifest__.py文件(Odoo 11用这个,不是老版本的__openerp__.py),且必须包含核心字段,示例:{ 'name': '我的自定义模块', # 会显示在应用列表的名称 'version': '1.0', 'author': '你的名字', 'depends': ['base'], # 至少依赖base模块 'data': [ # 这里放视图、菜单等文件路径,比如 'views/my_menu.xml' ], 'installable': True, # 必须设为True,否则不会出现在应用列表 'auto_install': False, } - 模块文件夹名不能有空格、大写或特殊字符,必须是小写字母加下划线,比如
my_custom_module
3. 开启Debug日志查看扫描过程
既然当前日志没报错,你可以重启Odoo时用更详细的日志级别,看看它扫描addons的过程:
- 先停止Odoo服务,然后用命令启动:
sudo -u odoo /odoo/odoo-server/odoo-bin --config=/etc/odoo/你的配置文件.conf --log-level debug - 前端点击「更新应用列表」,同时看终端日志,找
addons_paths:确认自定义路径在列表里;再找loaded module看有没有你的模块名,看不到就说明模块没被识别
4. 清除缓存再尝试
浏览器或Odoo服务器缓存可能导致模块不显示:
- 先重启Odoo服务器
- 用浏览器隐私模式打开Odoo后台,登录后再点击「更新应用列表」,避免浏览器缓存影响
另外你提供的配置文件路径格式是正确的,多个路径用逗号分隔无空格问题:
[options] ; this is the password that allows database operation: admin_passwd=**** db_port=5432 db_user=user_name xmlrpc_port=8069 logfile=/var/log/odoo/odoo-server.log addons_path=/odoo/enterprise/addons,/odoo/odoo-server/addons,/odoo/custom/addons
按照上面的步骤逐一排查,应该能找到问题所在。
内容的提问来源于stack exchange,提问作者Ndurere David




