转载于
【报错】ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found
问题描述
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by /apps/software/anaconda3/lib/python3.8/site-packages/matplotlib/ft2font.cpython-38-x86_64-linux-gnu.so)
解决方案
1 查看当前的系统动态库文件
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
结果如下:
在这里插入图片描述

我们发现版本到1.3.7,没有1.3.9,说明升级GCC时没用新版本的动态库替换老版本。(GCC动态库版本过老)
要解决这个问题,其中最简单且不需要Root权限的做法,是将anaconda3库文件路径添加到系统的库文件路径中。
2 查找conda内已有的动态库文件
find /usr/ -name "libstdc++.so.*"
反正就是找到libstdc++.so开头的所有文件。
输出结果如下:

3 挑选一个动态库查看一下
挑选一个版本较高或者最高的动态库查看,比如libstdc++.so.6.0.29、libstdc++.so.6.0.31
strings /hpcfiles/users/yourname/.conda/pkgs/libstdcxx-ng-11.2.0-h1234567_0/lib/libstdc++.so.6.0.29 | grep CXXABI
结果:

可以看到libstdc++.so.6.0.29动态库中包含了CXXABI_1.3.9,说明使用这个动态库可以的。
4 进入系统动态库文件,将conda库文件的路径添加进去
第一步进入系统库文件
vim ~/.bash_profile

在文件中添加如下代码
# LD_LIBRARY_PATH的地址是上面`libstdc++.so.6.0.29`动态库所在的文件
LD_LIBRARY_PATH=/data/home/user12/anaconda3/pkgs/libstdcxx-ng-13.1.0-hfd8a6a1_0/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
按ESC后,输入wq!保存退出。
然后重新加载系统动态度文件
source ~/.bash_profile
6790

被折叠的 条评论
为什么被折叠?



