torch_scatter安装踩坑实录及解决方法(ubuntu/conda/python/torch/cuda/torch_cluster)

【简洁版解决方案直接跳到最后】

一。安装途径

一般在ubuntu中配置python环境,选择conda安装是不错的选择。conda可以轻松地安装torch等环境。在anaconda网站上,我们可以找到torch_scatter的安装指令:conda install -c esri torch-scatter,但是安装后会发现无法成功运行,而且还会修改你其他包的版本。这是因为当你没有指定安装环境的版本时,conda会从当前安装渠道寻找最新版本的安装包,并且将你已经安装的其他环境升级到和它匹配。经过对使用torch_scatter的开源项目的查询我发现基本上在requirement这一栏都会建议使用pip来安装torch_scatter。在使用pip安装时,如果没有指定版本号,则pip会先扫描你已有的环境,并自动安装和你当前环境最匹配的版本。(在conda虚拟环境中使用pip安装的包和conda一样,是只存在于当前环境的。)

二。版本问题

有的开源项目会给出他们使用的torch_scatter的pip install链接,但是安装后很可能出现和torch的cuda版本不匹配的问题。

如果你在本站搜索这个问题的解决方法,十有八九会告诉你,先查看自己的torch版本,然后去下载对应版本的torch_scatter的whl文件并安装。你可以试一试看看是否成功。如果发现不成功请往下看。

首先要明确的一点是,我们需要保持torch和torch_scatter版本的高度一致。经过第一部分的叙述我们可以知道,使用pip来安装是比较好的选择。

首先我们直接去https://download.pytorch.org/whl/torch_stable.html下载torch的whl文件并用pip install 安装。方法一:在网站找到你需要的whl,右键,复制链接,使用【wget 链接】进行下载。下载后使用【pip install 文件名】进行安装。方法二:复制链接后,直接【pip install 链接】进行安装。注意查看whl是否是cuda版本!在网站页面寻找链接时,不要看左侧括号内的cuda版本,那个好多是错的,要看文件名中间是否有+cu10x的字样!例如,我的python版本是3.8,cuda版本10.2,那么我可以安装torch-1.9.0+cu102-cp38-cp38-linux_x86_64.whl。但是torch-1.7.0和1.8.0即使网页上左侧写了cu100、cu101,下载下来后会发现文件名没有cuda版本,会报错。

安装完torch后,我第一反应是再去https://pytorch-geometric.com/whl/torch-1.5.0.html下载相同版本的torch_scatter的whl文件并安装。然而我尝试了很多次,最后都会报错torch_scatter中有一串乱码无法识别,导致和torch对不上号。最终我在github.com/pyg-team/pytorch_geometric/issues/3058找到了解决办法:使用指令pip install --no-index torch-scatter -f https://pytorch-geometric.com/whl/torch-1.9.0+cu102.html,就可以把那串乱码去掉,然后就可以成功运行啦!

【简洁版总结】安装torch及其相关环境不成功时,建议全部使用pip安装,如果正在使用anaconda,则在conda虚拟环境内使用pip安装。

torch,torchvision,torchaudio此三样通过在http://download.pytorch.org/whl/torch_stable.html下载指定版本的wheels并pip安装(注意下载下来的文件名中是否有cuda版本号,没有则可能不是cuda版本)。

torch_cluster,torch_scatter,torch_sparse则在成功安装torch后,使用指令pip install --no-index torch-cluster -f https://pytorch-geometric.com/whl/torch-1.x.0+cu10x.html(torch_cluster可直接修改为另外两样)进行安装即可。

如果本文章对你有用,或你有任何质疑,可以在评论区留言。

你可能感兴趣的:(python,virtualenv,pytorch)