You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo导入错误(UNALTERABLE_COUNTRIES)及本地数据库异常求助

解决Odoo选择新数据库后出现的内部服务器错误及后续功能异常问题

看来你碰到了Odoo选新数据库后的连锁问题,先别慌,这种“首次报错刷新后恢复但功能瘸腿”的情况,十有八九是依赖包没装全或者版本不对搞的鬼。下面给你一套完整的解决方案,从依赖列表到排查步骤都有:

一、Odoo 14/15/16 完整依赖包列表(Python + 系统依赖)

系统层面依赖(Ubuntu/Debian为例)

先把底层系统依赖装齐,这些是Odoo运行的基础,缺一个都可能出奇怪的问题:

sudo apt update && sudo apt install -y \
    build-essential \
    python3-dev \
    python3-pip \
    python3-venv \
    libpq-dev \
    libxml2-dev \
    libxslt1-dev \
    libldap2-dev \
    libsasl2-dev \
    libssl-dev \
    libjpeg-dev \
    zlib1g-dev \
    libpng-dev \
    libwebp-dev \
    libtiff5-dev \
    libopenjp2-7-dev \
    poppler-utils \
    wkhtmltopdf

划重点:wkhtmltopdf是报表生成的核心,版本一定要匹配Odoo要求——比如Odoo16推荐用0.12.6版本,版本不对直接会导致报表编辑/生成失败。

Python依赖(通过pip安装)

建议用虚拟环境隔离依赖,避免和系统包冲突。如果是用官方源码,直接用自带的requirements.txt最省心;要是手动装,就用下面这个核心列表:

# 先把pip更到最新
pip3 install --upgrade pip

# 安装核心依赖
pip3 install \
    setuptools \
    wheel \
    psycopg2-binary>=2.8.6 \
    psutil>=5.8.0 \
    python-dateutil>=2.8.1 \
    pytz>=2021.1 \
    jinja2>=2.11.3 \
    lxml>=4.6.3 \
    decorator>=4.4.2 \
    requests>=2.25.1 \
    passlib>=1.7.4 \
    pillow>=8.3.2 \
    reportlab>=3.5.68 \
    pyopenssl>=20.0.1 \
    cryptography>=3.4.7 \
    werkzeug>=2.0.1 \
    babel>=2.9.1 \
    python-stdnum>=1.16 \
    python-slugify>=5.0.2 \
    markdown>=3.3.4 \
    xlwt>=1.3.0 \
    xlsxwriter>=1.4.4 \
    openpyxl>=3.0.9 \
    pyparsing>=2.4.7 \
    pydot>=1.4.2 \
    geopy>=2.2.0 \
    phonenumbers>=8.12.34 \
    vobject>=0.9.6.1 \
    qrcode>=6.1 \
    pypdf2>=1.26.0 \
    beautifulsoup4>=4.9.3 \
    soupsieve>=2.2.1 \
    html2text>=2020.1.16 \
    python3-openid>=3.2.0 \
    jwt>=2.3.0 \
    freezegun>=1.1.0 \
    psycogreen>=1.0.1 \
    watchdog>=2.1.6

源码用户直接跑pip3 install -r requirements.txt就行,自动匹配对应版本,不用自己记。

二、针对性排查与修复步骤

  1. 检查依赖是否真的装全了
    用这个命令快速找出缺失的包:

    python3 -c "import pkg_resources; requirements = open('requirements.txt').read().splitlines(); [print(req) for req in requirements if not pkg_resources.require(req)]"
    

    把输出的缺失包用pip3 install装上就好。

  2. 核实数据库用户权限
    有时候内部服务器错误是数据库用户没权限创建新库导致的,登录PostgreSQL执行:

    ALTER ROLE 你的Odoo数据库用户名 WITH CREATEDB LOGIN;
    

    替换成你实际用的数据库用户名,确保它有创建数据库和登录的权限。

  3. 清掉Odoo缓存
    刷新后功能异常大概率是缓存残留搞的鬼,删掉这两个目录:

    rm -rf ~/.local/share/Odoo/sessions/
    rm -rf 你的Odoo数据目录/filestore/*
    

    然后重启Odoo服务,应该能解决表单看不了代码的问题。

  4. 看完整错误日志定位问题
    你给的日志片段太短了,建议开debug模式启动Odoo,抓完整错误栈:

    ./odoo-bin --debug --log-level=debug
    

    这样能精准找到根因——比如报表异常就查wkhtmltopdf,表单异常就查lxml或者前端相关依赖。

三、额外提醒

  • 如果是装了自定义模块才出的问题,去模块的__manifest__.py里看看depends有没有漏写核心模块(比如web、base)。
  • 一定要用虚拟环境!用虚拟环境!用虚拟环境!重要的事情说三遍,避免系统全局包版本冲突坑死你。

内容的提问来源于stack exchange,提问作者vbt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:33:10