Odoo10迁移至Odoo11时出现ImportError: No module named 'werkzeug'报错
Odoo10迁移至Odoo11 werkzeug导入报错解决方案
根因
- 你当前使用的是Odoo 10官方Docker镜像作为运行环境,镜像内预装的Python依赖均适配Odoo 10版本。而你运行的OpenUpgrade 11代码基于Odoo 11代码库开发,Odoo 11要求的
werkzeug依赖版本不在Odoo 10的依赖兼容范围内,甚至Odoo 10镜像默认未预装该包,因此触发导入错误。
解决方案
方案1:当前容器临时修复(快速完成迁移)
- 切换到容器root权限,先安装OpenUpgrade 11所需的全部Python依赖:
pip3 install -r /var/lib/odoo/OpenUpgrade_11/OpenUpgrade/requirements.txt
若pip安装过程中出现编译报错,可先执行以下命令安装系统级依赖再重试:
apt update && apt install -y python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libssl-dev
- 依赖安装完成后,重新执行原迁移命令即可:
sudo -u odoo ./odoo-bin -d TestDB_Migr --update all --stop-after-init --data-dir=/tmp/
注意:该操作会修改容器内的Python依赖环境,若迁移完成后仍需使用该容器运行Odoo 10服务,建议回滚依赖版本,或优先选择方案2操作。
方案2:规范迁移环境搭建(无依赖冲突)
- 直接拉取Odoo 11官方Docker镜像作为迁移运行环境,将OpenUpgrade 11代码挂载到该容器内执行迁移操作,从根源上避免版本不兼容问题。
内容的提问来源于stack exchange,提问作者Tchadozor
相关产品推荐
相关产品推荐

