本人首先下载了Anaconda,自带python版本为3.7.0。随后准备下载PyTorch的previous version(1.2.0),使用的是如下命令:
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
这时候,我的conda
还是能用的。安装PyTorch即将完成之际,出现如下报错:
Traceback (most recent call last):
File "/home/myname/anaconda3/bin/conda", line 12, in <module>
from conda.cli import main
ModuleNotFoundError: No module named 'conda'
怎么会没conda
呢?报错信息上conda
路径不是还明明白白写着的嘛!之后,我再试用conda
进行操作,例如conda uninstall
,系统就无法识别conda
这个东西了。
我再敲python
进入交互界面,发现python从3.7.0降到了3.6.8... 原来,是安装PyTorch的时候,它会将你的python自动downgrade成为它的3.6.8版。虽然python版本被pytorch改变了,conda却没有被跟着被改变。新版本(3.6.8)的python包含着一个新的site-packages
,但是这个路径下没有conda了。于是系统就找不到conda了。
这份回答 提供了很多解决方法,我采用的是创建新环境。Anaconda提供了很方便的环境管理,你可以在不同的环境里使用不同版本的python,且互不干扰。上文出现的报错就是因为我所有的操作都是在默认(且目前唯一)base
环境里进行的,因而我们不妨再创建一个新的python 3.6环境,取名为pytorchenv
, 然后将PyTorch装在这里。
删除PyTorch并且重装Anaconda(否则无法再使用conda
命令了)。用如下命令创建一个配有python 3.6,最新numpy和scipy的新环境:
conda create -n pytorchenv python=3.6 numpy scipy
创建好之后,从base
进入pytorchenv
:
conda activate pytorchenv
这个时候我的设备上python版本为3.6.10。注意到,同为3.6之内的版本downgrade不会导致conda的错误,我们再重新安装PyTorch即可。[1]
参考
- ^封面图片来源: https://hackernoon.com/drafts/be1bd31qz.png