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

Ubuntu22.04下Conda环境导入Python cv2库遇ImportError求助

错误成因与解决方案

错误原因

ImportError提示的g_memdup2是GLib 2.68版本才新增的函数,问题根源在于:

  1. 你的conda环境使用Python 3.5(已停止维护),搭配的opencv3来自menpo频道,这类旧版本包依赖的系统库版本较低,和Ubuntu 22.04自带的高版本GLib/Pango库存在兼容性冲突。
  2. 加载cv2时,程序错误调用了系统的libpango-1.0.so.0,而该库依赖的g_memdup2函数在conda环境内的旧版GLib中不存在,导致导入失败。

解决方案

方案1:修复现有环境的库依赖

  1. 激活目标conda环境:
    conda activate testenv
    
  2. 卸载冲突的旧版opencv,替换为conda-forge频道的兼容版本:
    conda remove --force opencv3
    conda install -c conda-forge opencv=3.4.18 python=3.5
    
  3. 更新环境内的GLib和Pango,确保版本匹配:
    conda update glib pango -c conda-forge
    
  4. 设置环境变量,让conda优先使用自身库(避免调用系统库):
    export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
    
    若要永久生效,把上述命令写入环境激活脚本:
    echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
    

方案2:升级Python版本(推荐)

Python 3.5已停止维护,后续会持续出现兼容性问题,建议创建新环境使用更高版本Python(如3.8/3.9):

  1. 创建新的环境配置文件environment-new.yml:
    name: testenv-new
    channels:
    - pytorch
    - conda-forge
    - defaults
    dependencies:
    - python=3.8
    - jupyter
    - matplotlib
    - parso=0.7
    - scikit-learn
    - scipy
    - opencv=4.5
    - vlfeat
    - pytorch-cpu
    - torchvision-cpu
    - pip
    - pyyaml
    - pip:
      - visdom
    
  2. 创建新环境:
    conda env create -f environment-new.yml
    
  3. 为新环境安装Jupyter内核:
    conda activate testenv-new && python -m ipykernel install --user --name testenv-new --display-name "Python (testenv-new)"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:15:45