安装pytorch一些库的时候会遇到类似这样的错误;
ModuleNotFoundError: No module named 'torch_scatter.scatter_cpu'
ModuleNotFoundError: No module named 'torch_scatter.scatter_cuda'
或者;
往往都是因为CUDA配置不当造成的。请看我的博客,如何正确的配置CUDA,翻遍网上教程都没有本博客讲得通透。
CUDA配置一般情况下配置两个环境变量。但是为了防止出错,最好能够配置4个环境变量。
安装CUDA后会提醒配置两个:
Please make sure that
- PATH includes /usr/local/cuda-10.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root
所以
vim ~/.bashrc
.bashrc是root权限用户才能访问管理的配置文件,乱配的话,系统会崩。
export CUDA_HOME=/usr/local/cuda-10.0
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
一般情况下,都会自动创建一个软连接到/usr/local/cuda
所以 export CUDA_HOME=/usr/local/cuda 也是可以的
当然配置到PATH里也比较好,export PATH=/usr/local/cuda-10.0/bin:$PATH
配置完了CUDA一般是要安装CUDNN,最权威的安装方法见:
https://blog.csdn.net/dongfangxiaozi_/article/details/89453992
然后可选配置下面的两个:
export CPATH=/usr/local/cuda/include:$CPATH
export DYLD_LIBRARY_PATH=/usr/local/cuda-10.0/lib:$DYLD_LIBRARY_PATH
基本上就没问题了。记得source ~/.bashrc使配置生效。
如果还不行,旧重启服务器或者重装pytorch。
有时候安装了多个Cuda确保是干净地安装,而且环境配置唯独一个,保证不会混乱,否则各类PATH可能对应了不同版本的Cuda。可以删除之前旧的cuda环境,尤其是以yum 安装的cuda环境,可以通过yum remove删除,例如;
rpm -qa | grep cuda 查询当前以rpm / yum安装的cuda环境,一律删除
yum remove cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64
yum remove cuda-cublas-9-0-9.0.176-1.x86_64