Linux Mint下源码启动Odoo16报错求助:解析False及表不存在
解决Odoo16源码启动的两个关键错误及数据库无表问题
一、优先排查Python版本兼容性
Odoo16官方仅支持Python 3.8~3.10,使用Python3.12会引发依赖包兼容问题,这是初始化失败的核心诱因:
- 删除当前虚拟环境,重新创建基于Python3.10的虚拟环境
- 重新安装Odoo16全部依赖,确保依赖版本与Python3.10匹配
二、检查Odoo配置与启动参数
1. 修正配置文件关键项
打开你的Odoo配置文件,确保包含以下必要配置:
[options] db_host = localhost db_port = 5432 db_user = odoo16 # 你创建的PostgreSQL超级用户 db_password = 你的数据库密码 db_name = 目标数据库名 init = True # 强制初始化数据库并创建基础表 addons_path = /path/to/odoo16/addons,/path/to/custom/addons # 正确填写官方addons及自定义addons路径
2. 命令行强制初始化启动
若配置文件未生效,直接通过命令行启动并指定初始化:
./odoo-bin -c /path/to/your/config.conf -d 目标数据库名 --init base
--init base会强制加载base核心模块,创建ir_module_module等所有基础系统表
三、解决Could not eval(False) for active in {}错误
该错误源于基础模块未正确加载或路径配置错误:
- 确认
addons_path配置包含官方addons目录,base模块存于该目录下 - 启动时追加
--load base参数,强制加载base模块 - 检查虚拟环境依赖,确保安装了
psycopg2-binary<2.9(Odoo16对该包版本有严格要求)
四、验证PostgreSQL用户权限
确保odoo16用户拥有足够数据库权限:
- 进入PostgreSQL命令行:
sudo -u postgres psql
- 执行权限赋予命令:
ALTER USER odoo16 WITH SUPERUSER LOGIN; GRANT ALL PRIVILEGES ON DATABASE 目标数据库名 TO odoo16;
五、修正VSCode调试配置
打开launch.json,确保调试参数包含初始化与模块加载项:
{ "version": "0.2.0", "configurations": [ { "name": "Odoo16 Debug", "type": "python", "request": "launch", "program": "${workspaceFolder}/odoo-bin", "args": [ "-c", "${workspaceFolder}/odoo.conf", "-d", "目标数据库名", "--init", "base", "--load", "base", "--debug" ], "console": "integratedTerminal", "justMyCode": false } ] }
内容的提问来源于stack exchange,提问作者Smichi
相关产品推荐
相关产品推荐

