问题描述:
在用dgl跑基于cpu的分布式训练过程中报错。
miniconda虚拟环境:
python:3.8
pytorch:1.12.0
dgl:1.1.0
报错信息:
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found
(required by /home/hadoop/miniconda3/envs/p112p376/lib/python3.7/site-packages/scipy/spatial/ckdtree.cpython-37m-x86_64-linux-gnu.so)
解决问题:
退出虚拟环境,在base环境下执行如下操作
-
查看当前有那些版本
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
-
查找当前系统中其他的同类型文件,找到一个版本较高的
sudo find / -name "libstdc++.so.6*"
-
选择一个较高版本查看是否存在‘GLIBCXX_3.4.29’
strings /root/anaconda3/envs/list/lib/libstdc++.so.6.0.27 | grep GLIBCXX
-
复制到指定目录并建立新的链接
cp /root/anaconda3/envs/list/lib/libstdc++.so.6.0.27 /usr/lib/x86_64-linux-gnu/ sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6 sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.27 /usr/lib/x86_64-linux-gnu/libstdc++.so.6