遇到报错 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found

参考博客
无root权限解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found问题_kikiLQQ的博客-CSDN博客

报错内容

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /cluster/home3/zjc/Soft/anaconda3/lib/python3.9/site-packages/scipy/linalg/_matfuncs_sqrtm_triu.cpython-39-x86_64-linux-gnu.so)

报错说明
`GLIBCXX_3.4.26'文件是被 _matfuncs_sqrtm_triu.cpython-39-x86_64-linux-gnu.so 需要的,但是没找到这个文件。

1 查看文件

使用下述命令查看/usr/lib/x86_64-linux-gnu/libstdc++.so.6对应的软连接信息,发现其指向版本为6.0.25。

cd /usr/lib/x86_64-linux-gnu/
ls -l libstdc++.so*

查看结果如下,指向版本为6.0.25

2 查看包含的动态库

使用下述命令查看libstdc++.so.6链接包含的动态库,发现确实未包含GLIBCXX_3.4.26

strings libstdc++.so.6 | grep GLIBCXX

遇到报错 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found_第1张图片

大多解决方法:需要将/usr/lib/x86_64-linux-gnu/libstdc++.so.6下对应的软连接进行修改替换。但由于使用实验室的服务器时不具有root权限,无法进行替换,因此考虑指定加载库的路径。
 

3 开始解决

检查服务器中是否有包含GLIBCXX_3.4.29的libstdc++.so.6版本(最好是自己路径下)

find /cluster/home3/xxx -name libstdc++.so.6*

我的服务器路径:xxx是自己的用户名
这里find后面的路径一般是根据自己服务器中,用户文件所在路径进行修改,我的所有文件都在/home3/{自己用户名}这个目录下,查看如下
遇到报错 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found_第2张图片

4 现在查看这个动态链接库/cluster/home3/zjc/Soft/anaconda3/envs/SAM/lib/libstdc++.so.6
(上面截图里面的倒数第六个)
里面有没有GLIBCXX_3.4.26

strings /cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib/libstdc++.so.6 | grep GLIBCXX_3.4.2

strings /cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib/libstdc++.so.6 | grep GLIBCXX_3.4.2

发现有GLIBCXX_3.4.26

遇到报错 ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found_第3张图片

6 如果有这个文件,加载库的路径

上述含有GLIBCXX_3.4.26信息的
libstdc++.so.6文件的
路径为/cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib
我们直接在终端中修改指定加载库的路径:(这句话不太理解直接在终端里面运行前先输入这个吗?)

下面是原博客链接
无root权限解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found问题_kikiLQQ的博客-CSDN博客

export LD_LIBRARY_PATH=/cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib

export LD_LIBRARY_PATH=/cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib
(或者有人说添加:$LD_LIBRARY_PATH后缀才行
export LD_LIBRARY_PATH=/cluster/home3/xxx/Soft/anaconda3/envs/SAM/lib:$LD_LIBRARY_PATH)

7 最终的解决办法,仅适用于我自己。

我直接激活了另外一个环境就可以了,hhh

你可能感兴趣的:(linux,gnu,运维)