pip install torch_scatter安装失败,最终whl解决

2 篇文章 0 订阅
2 篇文章 0 订阅

场景

是安装torch-scatter问题引出的。

原本已经有一个虚拟环境安装好了torchtorch_geometric.
在随后安装torch-scatter的时候,尝试了所有可提供的版本,都无法成功,随即展开解决环境问题之旅。

一个明显的报错是:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Micros....

于是根据提示去 https://visualstudio.microsoft.com/visual-cpp-build-tools/官网下载安装build tools。

安装成功之后重新使用pip install torch-scatter安装还是出现同样的错误。

需要注意的一点:
上述安装build tools之后提示要重启,但是由于应用关系,没有重启,不知道是不是可能因为这样没有解决。


以下内容是又遇到了同样的编译错误,使用源码安装编译出错,又提示安装build,于是翻出来控制面板的程序卸载,发现里面有10版本的Microsoft visual c++,就所有的都卸载了,重新安装,最后编译成功了。单纯安装划横线的两个在我这里没用,还需要安装Windows software development kit,猜测这里面包含了真正的编译器,redistributable是不够的
在这里插入图片描述


网上有人提出是版本问题:也就是说所有版本要对应才行,

pip install torch==1.2.0
pip install torch_geometric==1.4.1
pip install torch_sparse==0.4.4
pip install torch_scatter==1.4.0
pip install torch_cluster==1.4.5

问题就是我已经尝试过所有torch_scatter版本,也就是说,可能我torch的版本可能不支持,毕竟我用的1.7.1+cpu,这再一次提示我们,版本最新不一定最好,它可能不支持其他的包。

重新来个新的环境

那就重新建一个虚拟环境,重新安装一下torch,

1.命令行在线安装
pip install torch

之前安装torch的时候出现过torch has an invalid wheel的问题,链接里给出的解决方案这次行不通了。

当然,这在配环境的过程中,是非常自然而正常的事情。

仔细观察提示信息,发现了ModuleNotFoundError: No module named 'tools.nnwrap'。通过百度发现这也是一个很常见的问题:
解决方案一:通过官网选择配置选择相应的生成安装命令
解决方案二

如果通过以上两个方案,解决了那自然是极好的。
如果没有解决,那可能需要更加仔细地看提示信息。提示信息可能会不一样。

2.whl安装

可以去一个非官方的python包网站下载对应的pytorch包。下载完毕之后同样使用pip进行安装。

一个小概率事件,可能会出现标题错误:
whl is not a supported wheel on this platform错误

可能原因主要在两个方面

  1. anaconda的版本是32位的,但是下载的pytorch包是64位的。
  2. 安装包对应的版本和python对应的版本不对应。

即使安装成功,在import torch的时候,也是可能出现问题的。
比如我,就出现了这个问题:

OSError: [WinError 126] 找不到指定的模块。 Error loading "C:\Users\xx\Anaconda3\envs\graph-emotion64\lib\site-packages\torch\lib\caffe2_detectron_ops.dll" or one of its dependencies.

这是一个常见问题,报错:caffe2_detectron_ops.dll“ or one of its dependencies.的解决办法,解决办法是:

pip install intel-openmp

在我这里成功地import torch了。

重新开始安装torch_geometric很顺利。

接下来安装torch_sparse失败

安装torch_scatter还是失败。

提示的错误依然是error: Microsoft Visual C++ 14.0 is required

一个显然的结论是重启时必要的。

然而重启之后发现依然不行。

百度发现了一个极其相似的踩坑之路:
win10 anaconda3 cuda9.2 cudnn配置torch-scatter踩的坑

文中提到了一个潜在的很有道理的解决方案:既然时编译器有问题,那么就简单直接地替换anaconda下地编译器。具体过程可以参考文中给地详细步骤,因为我这里最终没有采用这种方案,所以直接掠过。

另外一个安装编译器地方法就是直接使用命令行:

conda install mingw libpython

这样编译之后,果然错误改变了,不再是之前的gcc版本错误,而是:

gcc: 错误:/openmp:No such file or directory

opengm又是一个坑。

这个坑,我没有继续深挖。

在继续查找资料的过程中,找到了一篇救命贴:
win10下安装pyg出现torch_scatter报错解决

--------------------分割线--------------------------------

救命贴中的方式时直接绕开编译,下载对应的whl文件,直接进行pip安装,简单记录一下过程:

  1. List item

打开网页https://pytorch-geometric.com/whl/
在这里插入图片描述

  1. 发现很多不同的版本,本地命令行运行以下命令,查看torch版本:

在这里插入图片描述

  1. 这里下载对应版本的scatter
    在这里插入图片描述

  2. 直接pip安装
    在这里插入图片描述


总算是成功了,虽然编译器还是有问题,最起码scatter能用了。


可以直接拿到所有的版本对应的地方的whl

https://pytorch-geometric.com/whl/

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

binqiang2wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值