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

Ubuntu 20.04下xmlsec库版本不匹配报错求助

问题:Django运行时触发xmlsec版本不匹配报错

已安装组件版本

  • xmlsec: 1.3.13
  • lxml: 4.9.1

报错信息

Exception in thread django-main-thread:

Traceback (most recent call last):

from onelogin.saml2.auth import OneLogin_Saml2_Auth

File "/home/vboxuser/Desktop/web/.venv/lib/python3.10/site-packages/onelogin/saml2/auth.py", line 14, in

import xmlsec

xmlsec.Error: (19, 'xmlsec library version mismatch.')

用户已尝试重装相关软件包,但问题仍未解决,特此求助。


解决方案

这个报错是因为python-xmlsec绑定的底层C库xmlsec1版本和当前安装的python xmlsec包不兼容导致的,以下是几种实用解决思路:

  1. 匹配兼容的版本组合
    不同版本的python-xmlsec对应特定的xmlsec1底层库版本,比如python-xmlsec 1.3.x系列和部分较新的xmlsec1库存在兼容问题,可尝试降级到1.2.3版本,同时确保底层xmlsec1库版本为1.2.31或对应兼容版本。
    执行指定版本安装命令:

    pip install xmlsec==1.2.3
    
  2. 重新编译安装底层xmlsec1库
    如果系统自带的xmlsec1版本不兼容,可手动编译安装对应版本(以Ubuntu为例):

    • 先卸载系统中原有的xmlsec1库:
      sudo apt remove libxmlsec1 libxmlsec1-dev
      
    • 下载并编译安装xmlsec1 1.2.31版本:
      wget https://github.com/lsh123/xmlsec/archive/refs/tags/xmlsec1-1.2.31.tar.gz
      tar -xf xmlsec1-1.2.31.tar.gz
      cd xmlsec-xmlsec1-1.2.31
      ./configure --prefix=/usr/local
      make
      sudo make install
      
    • 强制重新安装python-xmlsec包:
      pip install xmlsec --force-reinstall --no-cache-dir
      
  3. 重置虚拟环境隔离依赖
    确认当前虚拟环境没有继承系统全局的xmlsec相关库,可删除现有虚拟环境重新创建,再重装所有依赖:

    rm -rf .venv
    python3.10 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:12:52