Anaconda创建Python虚拟环境时报错Collecting package metadata失败
问题根因
该报错是conda拉取包元数据时与系统代理配置冲突导致,错误栈中ValueError: check_hostname requires server_hostname是urllib库在走HTTPS代理时缺少服务器主机名参数触发,绝大多数场景由当前开启的系统代理/网络代理工具导致。
解决方案
按优先级依次尝试以下方案即可:
- 方案1:临时关闭所有系统代理/代理工具,重新执行
conda create -n python python=3.6命令,90%以上场景可直接解决。 - 方案2:若需要保持代理开启,手动给conda配置对应代理规则:
- 执行
conda config --show-sources找到本地.condarc配置文件路径,Windows系统默认路径为C:\Users\你的用户名\.condarc - 打开该文件,添加如下配置(端口替换为你本地代理工具实际使用的端口,不要直接照搬7890):
proxy_servers: http: http://127.0.0.1:7890 https: http://127.0.0.1:7890 ssl_verify: false- 保存配置后重新执行创建环境命令即可。
- 执行
- 方案3:切换conda为国内镜像源,避免请求境外服务器:
执行以下命令添加清华镜像源:
执行完成后重新创建环境即可。conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
额外提示
创建虚拟环境时不建议使用python作为环境名,容易和核心包名冲突引发后续命令异常,建议修改为py36这类自定义名称。
内容的提问来源于stack exchange,提问作者dubugger
相关产品推荐
相关产品推荐

