一、问题描述

安装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查看有哪些包。

四、总结

看懂英文,对症下药