一、问题描述
安装anaconda之后,想创建环境,用了下面这段代码:
conda create -n pytorch python=3.9
conda创建环境报错了,报了如下这一堆:
Collecting package metadata (current_repodata.json): failedUnavailableInvalidChannel: The channel is not accessible or is invalid.channel name: simplechannel url: https://pypi.tuna.tsinghua.edu.cn/simpleerror code: 404You will need to adjust your conda configuration to proceed.Use `conda config --show channels` to view your configuration's current state,and use `conda config --show-sources` to view config file locations.
二、问题分析
其实这个报错核心就是这句:
UnavailableInvalidChannel: The channel is not accessible or is invalid.
Channel无效,不能访问,Anaconda的Channel指的是Anaconda软件仓库的抽象概念,每一个channel代表一个特定的软件资源库,每一个channel有一个独立的安装源,用户可以添加,删除,管理这些软件资源库。Anaconda的channel可以帮助用户快速找到所需要的Python和R的软件包,并且可以在不同的操作系统中进行软件包的安装和管理。有点类似于源的概念,一个channel对应了一堆下载堆的概念。
也就是说核心问题在于换源,就是从国外源换成国内源。
三、问题处理
找到换源的资料
在anacondaprompt 里执行:
conda config --set show_channel_urls yes
WHY?
为什么运行这段代码,因为:TUNA 提供了 Anaconda 仓库与第三方源(conda-forge、msys2、pytorch等)的镜像,各系统都可以通过修改用户目录下的.condarc
文件。Windows 用户无法直接创建名为.condarc
的文件,可先执行 上面这段代码。
生成.condarc
文件如上图所示,在用户目录下建立.condarc文件,添加清华源:
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ssl_verify: true
其他源也一样,加上去即可。
附上:
北京外国语大学开源软件镜像站
channels:- defaultsshow_channel_urls: truechannel_alias: https://mirrors.bfsu.edu.cn/anacondadefault_channels:- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main- https://mirrors.bfsu.edu.cn/anaconda/pkgs/free- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r- https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro- https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2custom_channels:conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloudmsys2: https://mirrors.bfsu.edu.cn/anaconda/cloudbioconda: https://mirrors.bfsu.edu.cn/anaconda/cloudmenpo: https://mirrors.bfsu.edu.cn/anaconda/cloudpytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
上海交通大学开源软件镜像站
channels:- defaultsshow_channel_urls: truechannel_alias: https://anaconda.mirrors.sjtug.sjtu.edu.cn/default_channels:- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/free- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/mro- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/msys2- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/pro- https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/rcustom_channels:conda-forge: https://anaconda.mirrors.sjtug.sjtu.edu.cn/conda-forgesoumith: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/soumithbioconda: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/biocondamenpo: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/menpoviscid-hub: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/viscid-hub
阿里巴巴开源软件镜像站
channels:- defaultsshow_channel_urls: truedefault_channels:- http://mirrors.aliyun.com/anaconda/pkgs/main- http://mirrors.aliyun.com/anaconda/pkgs/r- http://mirrors.aliyun.com/anaconda/pkgs/msys2custom_channels:conda-forge: http://mirrors.aliyun.com/anaconda/cloudmsys2: http://mirrors.aliyun.com/anaconda/cloudbioconda: http://mirrors.aliyun.com/anaconda/cloudmenpo: http://mirrors.aliyun.com/anaconda/cloudpytorch: http://mirrors.aliyun.com/anaconda/cloudsimpleitk: http://mirrors.aliyun.com/anaconda/cloud
清华大学开源软件镜像站
channels:- defaultsshow_channel_urls: truechannel_alias: https://mirrors.tuna.tsinghua.edu.cn/anacondadefault_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
修改保存后,即可添加 Anaconda Python 免费仓库。
运行下面这段代码:
conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
回到最开始的问题,这时就可以顺利创建环境了
conda create -n pytorch python=3.9
然后启用环境即可:
conda activate pytorch
左边的(pytorch)就是环境的名称了。
pip list查看有哪些包。
四、总结
看懂英文,对症下药