安裝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