集群報(bào)錯(cuò):ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found
集群報(bào)上述錯(cuò)誤,沒有root權(quán)限,不想麻煩管理員的解決辦法:
問題描述
ImportError: /lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found
錯(cuò)誤如下:
from mmcv.ops import sigmoid_focal_loss as _sigmoid_focal_loss
File "/home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/ops/__init__.py", line 2, in <module>
from .assign_score_withk import assign_score_withk
File "/home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/ops/assign_score_withk.py", line 6, in <module>
'_ext', ['assign_score_withk_forward', 'assign_score_withk_backward'])
File "/home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/utils/ext_loader.py", line 13, in load_ext
ext = importlib.import_module('mmcv.' + name)
File "/home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so)
確認(rèn)報(bào)錯(cuò)
查看一下報(bào)錯(cuò)環(huán)境位置的libstdc++.so.6情況
strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so | grep GLIBC
發(fā)現(xiàn)確實(shí)沒有 version `GLIBCXX_3.4.29’
(open-mmlab) [xxx@gpu07 mmsegmentation]$ strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so | grep GLIBC
GLIBC_2.2.5
GLIBC_2.14
GLIBCXX_3.4.18
GLIBCXX_3.4.26
GLIBCXX_3.4.9
GLIBCXX_3.4
原因分析:
因?yàn)榘惭b的gcc版本比較高,生成的動(dòng)態(tài)庫(kù)沒有替換老版本gcc的動(dòng)態(tài)庫(kù),GLIBCXX中的版本比較低
解決方案:
將gcc最新版本的動(dòng)態(tài)庫(kù)替換系統(tǒng)中老版本的動(dòng)態(tài)庫(kù)
- 如果不想麻煩管理員,先找找其他環(huán)境中的 libstdc++.so.6文件,看有沒有自己需要的
find /home/xxx/tools/miniconda3 -name libstdc++.so.6
/home/xxx/tools/miniconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/pkgs/libstdcxx-ng-11.2.0-he4da1e4_16/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_0/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/envs/i2v/lib/libstdc++.so.6
/home/xxx/tools/miniconda3/envs/pytorch1.2/lib/libstdc++.so.6
- 用以下命令查看上述任意一個(gè)
strings /home/xxx/tools/miniconda3/envs/i2v/lib/libstdc++.so.6 | grep GLIBC
其中有環(huán)境中有報(bào)錯(cuò)中要求的版本
3. 拷貝需要的版本
然后只需要cd到報(bào)錯(cuò)位置,將libstdc++.so.6刪除,將metage環(huán)境下指定位置(指定位置是通過前面的find命令找的,一般在 ~/miniconda3/envs/環(huán)境名/lib/ 下就有)的libstdc++.so.6拷貝過來就行了;
# 刪除報(bào)錯(cuò)位置的libstdc++.so.6文件:
rm -rf /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so
# 切換到報(bào)錯(cuò)位置
cd /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/
# 復(fù)制剛才找到滿足要求的環(huán)境目錄到當(dāng)前位置
cp /home/xxx/tools/miniconda3/envs/i2v/lib/libstdc++.so.6 ./
# 查看報(bào)錯(cuò)位置的libstdc++.so.6
strings /home/xxx/tools/miniconda3/envs/open-mmlab/lib/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so.6 | grep GLIBC
如下圖文章來源:http://www.zghlxwxcb.cn/news/detail-403914.html
參考
https://blog.csdn.net/weixin_52602016/article/details/124478222?文章來源地址http://www.zghlxwxcb.cn/news/detail-403914.html
到了這里,關(guān)于集群報(bào)錯(cuò) /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!