安装过程要特别注意安装包版本、vs版本这两个问题!
初次尝试
按照网上的说法,使用了以下命令行安装:
pip install --no-cache-dir torch-scatter==1.3.1
pip install --no-cache-dir torch_cluster==1.4.3
pip install --no-cache-dir torch_sparse==0.4.0
出现了
ERROR: Command errored out with exit status 1: command:
‘C:\ProgramData\Anaconda3\envs\dualmesh\python.exe’ -u -c ‘import sys,
setuptools, tokenize; sys.argv[0] =
‘"’"‘C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\setup.py’"’"’;
file=’"’"‘C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\setup.py’"’"’;f=getattr(tokenize,
‘"’"‘open’"’"’, open)(file);code=f.read().replace(’"’"’\r\n’"’"’,
‘"’"’\n’"’"’);f.close();exec(compile(code, file, ‘"’"‘exec’"’"’))’
bdist_wheel -d
‘C:\Users\ADMINI~1\AppData\Local\Temp\pip-wheel-8j61uvav’
cwd: C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\
这说明当前的环境下并无法正常地安装这几个软件包。
查看了下当时的环境配置:
import torch;print(torch.__version__)
1.2.0
import torch; print(torch.version.cuda)
10.0
import torch; print(torch.cuda.is_available())
True
编译器环境
vs2015 comnunity。
VS2015升级到Update3仍旧有问题
后来网上说要升级到update 3。于是便到官网下载相关的iso,总共达7G多。经过漫长的下载后,心想这次应该是可以了。结果还是不行,出现以下错误:
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(40):
error C2039: “AutogradContext”: 不是“torch::autograd”的成员
C:\ProgramData\Anaconda3\envs\dualmesh\lib\site-packages\torch\include\torch/csrc/autograd/grad_mode.h(6):
note: 参见“torch::autograd”的声明
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(40):
error C2873: “AutogradContext”: 符号不能用在 using 声明中
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(44):
error C2039: “Function”: 不是“torch::autograd”的成员
C:\ProgramData\Anaconda3\envs\dualmesh\lib\site-packages\torch\include\torch/csrc/autograd/grad_mode.h(6):
note: 参见“torch::autograd”的声明
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(44):
error C2504: “Function”: 未定义基类
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(44):
error C2143: 语法错误: 缺少“,”(在“<”的前面)
C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-7ii80cer\torch-scatter\csrc\scatter.cpp(46):
error C2061: 语法错误: 标识符“AutogradContext”
升级到VS2017,解决!
这基本上就是编译器的问题了。
后来查看了相关的文章,有两种解决方式:
- 其一,到Linux环境下安装。因为,torch_geometric对于linux环境比较友好。
- 其二,进一步升级到vs2017或者vs2019。
由于需要在win10环境下运行相关程序,智能选择方案二。没办法进一步升级到vs2017 comunity。经过漫长的等待。。。。。。。。
在vs2017环境上执行安装命令,可以正常安装了。
后续安装
pip install --no-cache-dir torch_spline_conv==1.0.0
pip install --no-cache-dir torch_geometric==1.0.0
这样一来,torch_geometric就可以了。
验证
import torch_scatter
import torch_cluster
import torch_sparse
import torch_spline_conv
import os.path as osp
import torch
import torch.nn.functional as F
from torch_geometric.datasets import TUDataset
from torch_geometric.data import DataLoader
from torch_geometric.nn import GraphConv, TopKPooling
from torch_geometric.nn import global_mean_pool as gap, global_max_pool as gmp
未出现异常即安装成功!
启示
python安装包很多是在linux平台上编写的,很多安装包对windows其实是不友好的。出现的比较多的是编码、编译器以及版本问题。今后,在安装类似安装包时要特别注意版本的匹配问题!