Ubuntu16.04 Anaconda环境Scipy报GLIBCXX_3.4.26缺失错误如何解决
解决方案
你之前的配置未生效的核心原因是:.bashrc仅对交互式bash会话生效,且conda激活环境时会重置动态库查找路径,导致你手动配置的LD_LIBRARY_PATH未被实际加载。以下是无需降级Scipy的可行方案,按优先级推荐:
方案1:调整conda环境配置(最推荐,不修改系统全局配置)
- 第一步:运行脚本前必须先激活对应conda环境,避免直接调用环境内的Python二进制:
conda activate work python your_script.py - 第二步:如果激活后仍报错,修复conda环境内的libstdc++软链接:
# 进入对应conda环境的lib目录 cd /home/user/anaconda3/envs/work/lib # 备份原有软链接 mv libstdc++.so.6 libstdc++.so.6.bak # 软链接到包含目标版本的库文件 ln -s libstdc++.so.6.0.29 libstdc++.so.6 - 验证:激活环境后执行以下命令,确认输出的libstdc++.so.6路径为conda环境内的路径即可:
正常输出示例:ldd /home/user/anaconda3/envs/work/lib/python3.9/site-packages/scipy/optimize/_group_columns.cpython-39-x86_64-linux-gnu.so | grep libstdc++.so.6libstdc++.so.6 => /home/user/anaconda3/envs/work/lib/libstdc++.so.6 (0x00007f8a9c000000)
方案2:临时指定动态库路径(适合单次运行场景)
无需修改任何配置,运行脚本时临时指定动态库查找路径即可:
LD_LIBRARY_PATH=/home/user/anaconda3/envs/work/lib/:$LD_LIBRARY_PATH python your_script.py
方案3:升级系统全局libstdc++版本(适合需要全局生效的场景)
Ubuntu 16.04官方源自带的gcc版本较低,你可以添加工具链PPA升级libstdc++:
# 添加工具链PPA源 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update # 升级libstdc++6 sudo apt install -y gcc-9 g++-9 sudo apt upgrade -y libstdc++6
升级完成后执行strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX即可看到包含GLIBCXX_3.4.26版本。
内容的提问来源于stack exchange,提问作者vpk
相关产品推荐
相关产品推荐

