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

在Ubuntu 22.04中安装Odoo v12遇崩溃问题,求解决方案

在Ubuntu 22.04用Python3.6 venv安装Odoo v12时的崩溃问题及解决

问题描述

已完成以下操作:

  • 手动安装Python3.6到/usr/local/bin/python3.6
  • 创建虚拟环境:/usr/local/bin/python3.6 -m venv ./odoo12/
  • 激活虚拟环境并成功安装所有Odoo依赖
  • 运行Odoo命令:python3 odoo-bin --addons-path="./addons" -d odoo12,过程出现资源警告;打开浏览器访问http://127.0.0.1:8069/web/login时服务器崩溃,报错:

python3: Python/compile.c:3021: compiler_nameop: Assertion `!_PyUnicode_EqualToASCIIString(name, "None") && !_PyUnicode_EqualToASCIIString(name, "True") && !_PyUnicode_EqualToASCIIString(name, "False")' failed.
Aborted (core dumped)

错误原因

这个断言错误的核心原因是Python3.6与Ubuntu 22.04默认的glibc 2.35版本不兼容。Python3.6属于较旧版本,编译时依赖的glibc版本远低于Ubuntu 22.04提供的版本,运行时会触发内部断言失败——尤其是Odoo v12代码中存在的动态编译逻辑,会涉及None/True/False这些关键字的处理,直接触发了这个兼容性问题。另外,手动编译Python3.6时如果未添加适配参数,也会加剧这类冲突。

解决步骤

方案1:容器化部署(推荐)

用Docker运行Odoo v12可以彻底规避系统依赖冲突:

  • 拉取Odoo v12镜像:docker pull odoo:12
  • 启动PostgreSQL依赖容器:docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10
  • 启动Odoo容器:docker run -p 8069:8069 --name odoo --link db:db -t odoo:12
  • 访问http://127.0.0.1:8069即可使用

方案2:重新编译适配版Python3.6

如果一定要用本地venv,重新编译Python3.6并添加系统适配参数:

  1. 卸载现有手动编译的Python3.6:
    sudo rm -rf /usr/local/bin/python3.6
    sudo rm -rf /usr/local/lib/python3.6
    
  2. 安装编译依赖:
    sudo apt-get update && sudo apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
    
  3. 下载Python3.6.15稳定版源码:
    wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
    tar -xf Python-3.6.15.tgz
    cd Python-3.6.15
    
  4. 编译时添加glibc适配参数:
    ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath=/usr/local/lib"
    make -j$(nproc)
    sudo make altinstall
    
    --enable-shared和LDFLAGS参数确保Python链接系统glibc时不会出现版本冲突。
  5. 重新创建虚拟环境并安装依赖:
    /usr/local/bin/python3.6 -m venv ./odoo12/
    source ./odoo12/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  6. 再次运行Odoo:
    python odoo-bin --addons-path="./addons" -d odoo12
    

方案3:用pyenv隔离Python版本

pyenv在用户空间编译Python,完全隔离系统依赖:

  1. 安装pyenv及依赖:
    sudo apt-get install -y git curl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
    curl https://pyenv.run | bash
    
  2. 配置shell加载pyenv:
    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
    source ~/.bashrc
    
  3. 安装Python3.6.15:
    pyenv install 3.6.15
    
  4. 创建并激活虚拟环境:
    pyenv virtualenv 3.6.15 odoo12
    pyenv activate odoo12
    
  5. 安装依赖并运行Odoo:
    pip install --upgrade pip
    pip install -r requirements.txt
    python odoo-bin --addons-path="./addons" -d odoo12
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:55:26