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

Ubuntu20.04下pip3安装OpenCV4后导入cv2出现未定义符号错误求助

解决Ubuntu 20.04下pip安装OpenCV4导入时的undefined symbol: cairo_tag_end错误

这个错误的核心原因是系统中librsvg-2.so.2库依赖的Cairo版本不兼容,缺少cairo_tag_end这个符号——通常是因为系统自带的Cairo库版本过旧,或者pip安装的OpenCV引用了错误的库路径导致的。下面是几个逐步排查修复的方案:

方案1:修复系统依赖库

首先尝试重新安装系统的Cairo和librsvg库,修复可能的损坏或版本不匹配:

  • 更新软件源并重新安装依赖:
    sudo apt update
    sudo apt install --reinstall libcairo2 librsvg2-2
    
  • 安装完成后,打开Python3终端测试:
    python3 -c "import cv2; print(cv2.__version__)"
    

方案2:改用系统自带的OpenCV版本

pip安装的OpenCV有时会和系统库存在兼容性问题,改用apt安装的系统版本会更稳定:

  • 先卸载pip安装的OpenCV:
    pip3 uninstall -y opencv-python opencv-contrib-python
    
  • 安装系统版本的OpenCV:
    sudo apt install python3-opencv
    
  • 再次测试导入是否正常:
    python3 -c "import cv2; print(cv2.__version__)"
    

方案3:更新系统库后重新安装pip版OpenCV

如果坚持要用pip安装的版本,先确保系统所有库都是最新的:

  • 全面更新系统:
    sudo apt full-upgrade
    
  • 强制重装pip版OpenCV:
    pip3 install opencv-python --force-reinstall
    
  • 测试导入是否成功。

额外排查:检查库路径优先级

如果上面的方案都没用,可能是LD_LIBRARY_PATH环境变量导致库加载顺序异常,先把系统标准库路径设为最高优先级:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

然后再测试import cv2。如果有效,可以把这条命令添加到~/.bashrc里永久生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:33:15