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/

torch-sparse系列安装报错,通用解决方法_第1张图片
torch-sparse系列安装报错,通用解决方法_第2张图片
集中存储这四个轮子,如下图是下载好四个whl文件后的样子:
torch-sparse系列安装报错,通用解决方法_第3张图片
进入当前路径下的命令行模式窗口
直接在路径上cmd就可以了
torch-sparse系列安装报错,通用解决方法_第4张图片
torch-sparse系列安装报错,通用解决方法_第5张图片
使用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

找到它
torch-sparse系列安装报错,通用解决方法_第6张图片
点进去修改一下里面的模块导入
原始内容:
torch-sparse系列安装报错,通用解决方法_第7张图片

修改部分:
(修改以后记得保存,然后退出脚本)
torch-sparse系列安装报错,通用解决方法_第8张图片

后续报错2

Empty suite

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

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

你可能感兴趣的:(pytorch,人工智能,神经网络,深度学习,pytorch)