Ubuntu22.04下Miniconda虚拟环境GLIBCXX_3.4.30缺失问题求助
解决Ubuntu22.04下Miniconda Python3.6环境GDAL依赖GLIBCXX_3.4.30缺失问题
问题根源
Ubuntu22.04系统自带的libstdc++.so.6包含GLIBCXX_3.4.30版本,但Miniconda的Python3.6旧虚拟环境中自带的libstdc++版本较低,导致GDAL调用时找不到所需的版本符号。
解决方案
方案一:让虚拟环境优先使用系统的libstdc++
- 激活目标虚拟环境:
conda activate python3.6 - 备份环境内的旧libstdc++文件:
mv $CONDA_PREFIX/lib/libstdc++.so.6 $CONDA_PREFIX/lib/libstdc++.so.6.bak - 创建软链接指向系统的高版本libstdc++:
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 $CONDA_PREFIX/lib/libstdc++.so.6 - 验证是否包含所需版本:
若输出strings $CONDA_PREFIX/lib/libstdc++.so.6 | grep GLIBCXX_3.4.30GLIBCXX_3.4.30则说明生效。
方案二:更新虚拟环境内的libstdc++
直接通过conda-forge安装高版本的libstdc++库:
conda activate python3.6 conda install -c conda-forge libstdcxx-ng
该命令会替换环境内的旧libstdc++,使其支持GLIBCXX_3.4.30。
方案三:使用conda安装GDAL(避免依赖系统库)
如果系统GDAL和虚拟环境存在冲突,可完全使用conda生态的GDAL:
- 卸载系统端的GDAL依赖:
sudo apt remove --purge libgdal-dev libgdal30 - 激活虚拟环境后安装conda版GDAL:
conda activate python3.6 conda install -c conda-forge gdal - 若需要Python绑定包,安装与GDAL版本匹配的
gdal:pip install gdal==$(gdal-config --version)
注意事项
- 操作前建议克隆备份虚拟环境,防止意外:
conda create --name python3.6_backup --clone python3.6 - Python3.6已停止维护,conda-forge上部分包的支持可能受限,若安装时出现版本冲突,可尝试指定GDAL的兼容版本(如
conda install -c conda-forge gdal=3.4)。
内容的提问来源于stack exchange,提问作者Ahmad Raja
相关产品推荐
相关产品推荐

