Ubuntu22.04下Conda环境导入Python cv2库遇ImportError求助
错误成因与解决方案
错误原因
ImportError提示的g_memdup2是GLib 2.68版本才新增的函数,问题根源在于:
- 你的conda环境使用Python 3.5(已停止维护),搭配的
opencv3来自menpo频道,这类旧版本包依赖的系统库版本较低,和Ubuntu 22.04自带的高版本GLib/Pango库存在兼容性冲突。 - 加载
cv2时,程序错误调用了系统的libpango-1.0.so.0,而该库依赖的g_memdup2函数在conda环境内的旧版GLib中不存在,导致导入失败。
解决方案
方案1:修复现有环境的库依赖
- 激活目标conda环境:
conda activate testenv - 卸载冲突的旧版opencv,替换为conda-forge频道的兼容版本:
conda remove --force opencv3 conda install -c conda-forge opencv=3.4.18 python=3.5 - 更新环境内的GLib和Pango,确保版本匹配:
conda update glib pango -c conda-forge - 设置环境变量,让conda优先使用自身库(避免调用系统库):
若要永久生效,把上述命令写入环境激活脚本:export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATHecho '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):
- 创建新的环境配置文件
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 - 创建新环境:
conda env create -f environment-new.yml - 为新环境安装Jupyter内核:
conda activate testenv-new && python -m ipykernel install --user --name testenv-new --display-name "Python (testenv-new)"
内容的提问来源于stack exchange,提问作者Purvesh Patel
相关产品推荐
相关产品推荐

