win10下torch_geometric安装踩坑记

安装过程要特别注意安装包版本、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其实是不友好的。出现的比较多的是编码、编译器以及版本问题。今后,在安装类似安装包时要特别注意版本的匹配问题!

你可能感兴趣的:(python,机器学习,神经网络,深度学习,pytorch)