Anaconda创造虚拟环境时"An HTTP error occurred when trying to retrieve this URL."的解决方案

Anaconda创造虚拟环境时"An HTTP error occurred when trying to retrieve this URL."的解决方案

  • 错误现象与原因
  • 错误解决
  • 注意事项
    • show_channel_urls的作用
    • 使用命令窗口添加通道时URL不要带引号
    • 在 .condarc 文件中添加通道要注意顺序

错误现象与原因

在Anaconda Prompt中创造虚拟环境过程中,需要为虚拟环境配置Python,在Python安装包下载至20%左右时,报错。

Anaconda An HTTP error occurred when trying to retrieve this URL.

产生上述错误的原因是Anaconda的服务器在国外,国内下载速度很慢,下载内容较大时常出现问题。

错误解决

出现这一问题,可以选择从国内的镜像下载,国内常用的就是清华源TUNA,只需要把清华源里与Anaconda对应的URL添加到通道就可以了。在这里介绍两种效果等同的方法。

  1. 通过命令窗口添加
#添加镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#如有需要,删除镜像
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
#设置搜索时显示通道地址
conda config --set show_channel_urls yes
  1. 在 C:\Users\用户名 目录下找到并打开 .condarc 文件并将其修改为:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults 
show_channel_urls: true

注意事项

show_channel_urls的作用

将show_channel_urls设置为True后,搜索时就会显示通道地址,便于我们确认下载源的正确性。

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    python-3.7.7               |h60c2a47_0_cpython       14.8 MB  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    ------------------------------------------------------------
                                           Total:        14.8 MB

使用命令窗口添加通道时URL不要带引号

有些文章在介绍时,给出的添加镜像语句是这样的:

#添加TUNA镜像
conda config --add channels ‘https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/’

采用命令窗口添加通道,Anaconda会自动在URL两端加上引号。上述方式会导致 .condarc 文件中,对应通道出现两个引号,无法被识别。

- "'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/'"

在 .condarc 文件中添加通道要注意顺序

在需要下载文件时,Anaconda会对 .condarc 里的通道顺序搜索,通过有对应文件最靠前的一个通道下载。
这里- defaults代表的是其初始的一系列通道,这些通道安装包齐全但是下载速度慢,推荐保留但放在最后,这样当前面的源有对应文件时,可以高速下载;没有对应文件时,也不会报错。
特别的,使用命令窗口添加通道时,通道会被写在最前面。

你可能感兴趣的:(小白学习笔记)