下面是我的尝试过程,如果不想了解错误直接安装,那么请直接移步pytorch离线安装纯净版
首先这个事情就是,我作为一个真正的小白,竟然是自信满满直接打开conda,主要是我之前有多次在conda环境下安装tensorflow的经验,所以我打开的时候是十分自信。然后就是上来一个官网看命令。一个conda prompt,一个执行命令。电脑全防出去了。然后把拳头放在我的面部,按照传统功夫点到为止我已经输了。但是我不讲武德。使用本地安装的方法成功了。
接下来我将介绍失败的过程:
我上来发现下载速度很慢,然后报了一个http错误,显示是源网站不可达所以我就惯性思维尝试清华源,换到清华源直接下载都不下载,我去一看。原来是清华源停运了。那再试试阿里云吧,结果也是不行具体截图如下:
添加清华源。
试试发现不行,换成阿里云
试了一下还是不行。
我分析了一下既然是网络的问题,是下载不下来,那么我把安装源放在本地不就可以了吗?
1.pytorch的官方网站:https://download.pytorch.org/whl/torch_stable.html
python的官方网站:https://pypi.org/
(但是官方网站下载的都很慢)
pytorch的源网站:https://download.pytorch.org/whl/torch_stable.html
2.清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
3.各种博客上面零零散散也有些个人的下载,可以去碰碰运气
为了不影响我的主环境,这里是建立了虚拟环境的。使用下面这些命令应该够用了:
conda create -n your_env_name python=X.X(2.7、3.6等)
Linux: source activate your_env_name(虚拟环境名称)进入环境
Windows: activate your_env_name(虚拟环境名称)进入环境
conda install -n your_env_name [package]即可安装package到your_env_name中
另外进入环境( activate your_env_name)之后安装的包都在这个环境当中
conda env list 或 conda info -e 查看当前存在哪些虚拟环境
先下载一个torch-0.4.0 然后使用 pip install xxx(目录加文件名)这个命令来进行安装,如果使用conda install将不能成功。下图是我安装的过程,先安装显示成功之后使用 conda list查看安装情况。发现已经顺利安装了。
但是我们不是为了顺利安装,我们是为了使用pytorch。所以我们进入python当中尝试import torch 发现并不可以。具体情况如下:
使用命令python进入环境:
我们看这个错误 ImportERROR:numpy.core.multiarray failed to import
翻译一下,numpy库当中的多态多维数组加载失败了。回头看之前conda list命令给出的列表,并没有numpy库,那下一步就很明确了安装numpy:
还是使用离线安装的方法:
首先使用exit()来退出python。
这里我是直接依据经验安装一个six,不安装可能也许,我这里是依据经验直接安装了一个。同样这里也是使用离线安装方法
然后下载numpy库,之后进入我们创建的虚拟环境,进行安装。
安装numpy成功后再次测试,发现可以引入torch库了
这里的做法显然不够完美,因为我们手动离线安装可能会少个一两个包,这个目前可能没有问题,但是将来可能存在无穷无尽的问题。所以我这里想到一个方式,我们去pytorch官网(https://pytorch.org/)拿到对应的命令,因为我根据我的情况选择:
可以顺利拿到一个命令:conda install pytorch torchvision torchaudio cpuonly -c pytorch
最后的-c pytorch是从官网这里下载,运行这个命令我们会得到一个环境解决方案。其中告诉我们需要安装一系列的包,我们这里选择no,停止当前过程,然后离线去安装这些包就行了。
(截图丢失之后会不上)
将这些包顺利安装完成,就比较稳妥了。
这个库的安装是为了顺利的使用示例库来测试我们的模型设计的是否合理。
还是使用线的方法:
我这次包下载的位置是下面这个位置:
pytorch的源网站:https://download.pytorch.org/whl/torch_stable.html
我说一下这个位置是怎么来的。其实也是从官网来的具体如下图,选择pip之后就可以找到这个网址了。你可以依据自己的需求选择之后拿到网址
下载之后进行安装还是使用pip install xxx
这次不出意外的出现了错误。
我们读一下这个错误,这个错误是pip命令在conda下面的常见错误了。就是pip可以在conda下安装包,但是在conda下安装包就会出现冲突,我个人理解这个错误的原因是,conda下执行的命令的作用区域相当于在固定的文件范围内有作用但是出了这个文件夹的范围就不行了。所以pip一下载就相当于超过范围了,就会出现问题。
理解清楚这类问题之后,我们理解一下这个在这个错误是干什么的,这个是pi想安装一个Pillow=8.1.2的包引发了前面那类问题。所以我们自己手动安装一个就行了。这个我是在线安装的,因为它不大,试了一下也是可以顺利安装的。
然后我们再离线安装torchvision。
顺利完成了。
我们尝试引入一下torchvision然后发现不行
我一开始怀疑是我们没有引入torch的原因,我们重新引入torch试一下
发现报错还是一样的,那就得老实解决这个问题了。
读一下这个错误
这个我们读一下错误,首先分析两种可能性,1.我们包版本更新什么的导致这个名称变了。2.我们还少包。看一下这个错误torch.nn这个包是在torch当中啊,是torch神经网络之中的东西,所以我们直接看一下torch里面有没有这个就行了
我们前往我安装的torch0.4.0的文档:https://pytorch.org/docs/0.4.0/nn.html
看了一下确实没有这个组件,所以那就是我们装的torchvision太新了。这里存在两个方法:1.更新torch2.torchvision回到老版本。我们以发展的眼光看问题还是更新torch好,但是一想我们这个pytorch我下载比较费劲,我还是回滚torchvision比较靠谱。然后我们得更新torchvision到0.2.0试一下。发现网站上已经没有这个版本了。
使用 -c 换一个源试一下,都试试发现全不行。
然后只能使用下策了,去csdn付费下载一个轮子成功安装torchvision-0.2.0
安装成功了。
我们测试一下发现确实可以了。
这个代码是没有问题的,但是却异常跳出错误。
Module ‘torch’ has no ‘from_numpy’ memberpylint(no-member)
我猜测这个错误是我安装的版本有冲突,因为我安装的numpy是最新的版本,但是安装torch却是最古老的版本,所以决定重新安装环境来解决。
于是,我重新安装了如下版本
certifi 2020.12.5 py36haa95532_0 defaults
future 0.18.2 <pip>
numpy 1.19.5+mkl <pip>
Pillow 8.1.2 <pip>
pip 21.0.1 py36haa95532_0 defaults
python 3.6.13 h3758d61_0 defaults
setuptools 52.0.0 py36haa95532_0 defaults
six 1.15.0 <pip>
sqlite 3.35.2 h2bbff1b_0 defaults
torch 1.6.0 <pip>
torchvision 0.4.0+cpu <pip>
vc 14.2 h21ff451_1 defaults
vs2015_runtime 14.27.29016 h5e58377_2 defaults
wheel 0.36.2 pyhd3eb1b0_0 defaults
wincertstore 0.2 py36h7fe50ca_0 defaults
具体安装和验证的截图如下:
做完之后尝试一下再,发现还是不行,这时候我仔细搜了一下,发现是是我的代码分析工具Pylint 的问题,我重新设置了这个路径。
首先一个问题是找到这个目录:
打开setting搜索一下就行:
搜索这个就可以了:python.linting.pylint path
那么接下来的最大一个问题就是:我们应当如何确定这个目录的问题:
1.我们应当先打开anaconda的安装目录,里面有一个pkgs文件夹,打开这个文件夹,这个在我的理解当中就是你所有虚拟环境的包都会安装在这里。
2.可能你不同的环境下安装了同名的包例如你打开之后和我一样:
现在我们就比较麻烦了,我们要找出来哪个是我们想要使用的包,首先第一个方法可以通过时间来进行区分,虽然这个方法很简单,但是忘了自己啥时候安装的就麻烦了。所以我提供了第二种麻烦的解决办法:
1)使用命令
activate xxx #转到你需要的环境
然后使用命令
conda list #列出当前环境下的所有包
2)找到pylint和上面对一下名字就好了,这个后面不是有一串名字吗?和文件夹里面的名字对应上就可以了
3.我们打开这个名字对应的文件夹,打开\Scripts\ 找到pylint.exe就可以了。最后把你的路径设置成指向pylint.exe就可以了。
4.在哪修改?打开设置,之后搜索一下就完事了。
据说这个是anaconda和vscode相互配合时经常出现的问题。
设置之后顺利解决了。
更新完成之后添加