导入matplotlib时出现CXXABI_1.3.9版本缺失错误求助
解决Matplotlib导入时的
ImportError: CXXABI_1.3.9 not found问题 我懂你试了好几个常见方案都没搞定的挫败感,这种C++库版本不匹配的问题确实容易卡壳,咱们试试下面几个更针对性的办法:
1. 替换系统libstdc++.so.6软链接为Anaconda版本
首先确认你的Anaconda安装目录里有可用的高版本libstdc++.so.6:
ls -l /home/wasiahmad/software/anaconda3/lib/libstdc++.so.6
如果能看到这个文件,先备份系统原来的链接(以防万一):
sudo mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6.bak
然后创建新的软链接,指向Anaconda里的版本:
sudo ln -s /home/wasiahmad/software/anaconda3/lib/libstdc++.so.6 /lib64/libstdc++.so.6
做完之后验证是否包含需要的版本:
strings /lib64/libstdc++.so.6 | grep CXXABI
如果输出里能看到CXXABI_1.3.9,就说明这一步成功了,再尝试导入matplotlib。
2. 强制更新Anaconda自带的libstdc++库
有时候Anaconda自带的libstdc++版本不够新,直接更新它:
conda update -n base -c defaults libstdcxx-ng
这个命令会更新base环境下的标准C++库,更新完成后重启终端再尝试导入。
3. 新建干净的conda环境重新安装Matplotlib
如果当前环境的依赖已经混乱,干脆新建一个纯净环境:
conda create -n clean_matplotlib_env python=3.6 conda activate clean_matplotlib_env conda install matplotlib
在这个新环境里运行代码,大概率能避开之前的依赖冲突。
4. 手动复制Anaconda的libstdc++文件到系统库目录
如果软链接的方式因为权限或系统限制行不通,试试直接复制文件(记得先备份原文件):
# 先查看Anaconda里libstdc++的完整版本文件名 ls /home/wasiahmad/software/anaconda3/lib/libstdc++.so.6.* # 假设输出是libstdc++.so.6.0.25,执行下面的命令 sudo cp /home/wasiahmad/software/anaconda3/lib/libstdc++.so.6.0.25 /lib64/ sudo rm /lib64/libstdc++.so.6 sudo ln -s /lib64/libstdc++.so.6.0.25 /lib64/libstdc++.so.6
同样用之前的strings命令验证版本是否符合要求。
内容的提问来源于stack exchange,提问作者Wasi Ahmad
相关产品推荐
相关产品推荐

