问题描述
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 /hpcfiles/users/yourname/.conda/ -name "libstdc++.so.*"
/hpcfiles/users/yourname/.conda/. 这一部分是conda的路径。
输出结果如下:

3 挑选一个conda的动态库查看一下
strings /hpcfiles/users/yourname/.conda/pkgs/libstdcxx-ng-11.2.0-h1234567_0/lib/libstdc++.so.6.0.29 | grep CXXABI
结果如下:

可以看到比较新。
4 进入系统动态库文件,将conda库文件的路径添加进去
第一步进入系统库文件
vi ~/.bash_profile
在文件中添加如下代码
LD_LIBRARY_PATH=/home/feng/anaconda3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

按ESC后,输入wq保存退出。
然后重新加载系统动态度文件
source ~/.bash_profile
参考资料
https://www.cnblogs.com/jimlau/p/13263052.html
https://blog.youkuaiyun.com/zhuiqiuzhuoyue583/article/details/80150207
当遇到ImportError提示libstdc++.so.6版本不匹配时,可以通过检查系统动态库文件、搜索conda内的动态库、将conda库路径添加到系统库路径中来解决。具体步骤包括查看系统中libstdc++.so.6的版本,找到conda环境中较高版本的动态库,并在.bash_profile中设置LD_LIBRARY_PATH。
2500

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



