torch-sparse系列安装报错,通用解决方法

题主环境:

Win10
python3.7
conda 4.9.2
torch1.7.0 + CU101
已经安装成功了torch_geometric==1.7.0

安装失败提示:

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools

原因分析:

torch-sparse、torch_scatter、torch_cluster等模块编译需要依赖Visual C++ 14.0的编译工具


失败的解决方案:

试过
https://blog.csdn.net/qq_42165156/article/details/85809358

试过
https://blog.csdn.net/weixin_40547993/article/details/89399825

这两个帖子都是说怎么安装Visual C++ 14.0来解决问题的
但是按照这两个帖子的指示去完成了
下载包的时候依旧是疯狂报错

最佳解决方法

使用官方提供的whl文件配置环境
网址如下

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

如何找到适合自己电脑环境的相应的文件
如何找到适合自己电脑环境的相应的whl文件
集中存储这四个轮子,如下图是下载好四个whl文件后的样子:
在这里插入图片描述
进入当前路径下的命令行模式窗口
直接在路径上cmd就可以了
在这里插入图片描述
在这里插入图片描述
使用pip install + 轮子的名字,就可以成功安装模块了
举例:

pip install torch_sparse-0.6.9-cp37-cp37m-win_amd64.whl
torch_sparse-0.6.9-cp37-cp37m-win_amd64.whl是我下好的轮子,要替换一下

whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装。

测试环境是否配置到位:

下面是一个官方的demo
官方文档如下:

https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html

代码如下:

import torch
from torch_geometric.data import Data

edge_index = torch.tensor([[0, 1, 1, 2],
                           [1, 0, 2, 1]], dtype=torch.long)
x = torch.tensor([[-1], [0], [1]], dtype=torch.float)

data = Data(x=x, edge_index=edge_index)
print(data)


>>Data(edge_index=[2, 4], x=[3, 1])
>>Process finished with exit code 0

Process finished with exit code 0
说明torch_geometric的环境成功配置了

后续报错1

D:\ProgramData\Anaconda3\lib\site-packages\pyreadline\py3k_compat.py:8
D:\ProgramData\Anaconda3\lib\site-packages\pyreadline\py3k_compat.py:8: DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’ is deprecated, and in 3.8 it will stop working
return isinstance(x, collections.Callable)

原因分析1和解决方法1:

由于在python3.8中不再支持collections,建议使用collections.abc
由上面的报错信息,找到报错的文件,也就是用了collections的这个py3k_compat.py文件(每个人的conda路径不一样,找到这个文件就行):

D:\ProgramData\Anaconda3\lib\site-packages\pyreadline\py3k_compat.py

找到它
在这里插入图片描述
点进去修改一下里面的模块导入
原始内容:
在这里插入图片描述

修改部分:
(修改以后记得保存,然后退出脚本)
在这里插入图片描述

后续报错2

Empty suite

原因分析2和解决方法2:

注意不能使用test命名文件,在这个包下面会报错的
原因:
1.类名用Test命名
2.代码中使用了main函数调用类中的内容
所以解决办法:只要不满足上面的某一条件就行

  • 13
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值