导入python库报错"libgomp.so.1: version `GOMP_4.0‘ not found"
问题描述
超算跑一个pytorch,出现如下错误
from torch._C import * ImportError:
/public/anaconda3/…/lib/libgomp.so.1: version `GOMP_4.0’ not found
(required by /public/anaconda3/…/lib/libtorch_cpu.so)
按照字面意思就是:libtorch_cpu.so需要使用libgomp.so.1内的GOMP_4.0,由于缺少所以报错,最直接的解决方法就是缺啥补啥呗。
步骤
1 更新gcc版本
如果gcc版本较低,比如我的是4.8.5,就建议直接更新gcc。
gcc --version #查看gcc版本
关于超算平台无root权限更新gcc的方法可以参考我的另一篇博客:
Linux笔记(1)——Linux超算平台升级gcc(非root)
2 替换文件
更新完gcc后,在其安装目录内可以查看新的libgomp.so.1包,发现包含我们需要的GOMP_4.0。
#查看新安装的libgomp.so.1包
strings /public/.../gcc-6.5.0/install/gcc-6.5.0/lib64/libgomp.so.1 | grep GOMP
之后只需将该文件复制一份到报错目录,替换掉旧的libgomp.so.1文件即可
mv /public/.../gcc-6.5.0/install/gcc-6.5.0/lib64/libgomp.so.1 /public/anaconda3/.../lib/libgomp.so.1
最后重新执行python程序,可以正常导入pytorch库,不会再报错。
总结
网上有大佬,在第二步时需要重新设置环境变量,然而对我来说没有什么用,依旧报错。我的思路就很直接,缺什么补什么,直接复制一份过去就好了。