Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总
Posted 小哈里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总相关的知识,希望对你有一定的参考价值。
Problem
- 刚装的Anaconda,官网下载的,无法打开,打开后是错误的网页界面。
- 错误为:check_hostname requires server_hostname
- 版本为:Anaconda3-2021.05; Win10 21H1 19043;
Solution1(无效)
1、首先需要添加环境变量PATH
2、管理员身份运行: anaconda prompt
3、运行命令:conda update Anaconda-Navigator
如果使用以上命令仍不能修复,可尝试重置navigator;命令行具体如下:
anaconda-navigator --reset
以上命令会把anaconda的所有包全部升级一遍,最后重置
即获得了一个最新最新版的anaconda,然而并没有什么用。
Solution2(临时)
据说这个问题是使用了VPN,没有添加代理导致的。
所以可以直接在Win10的设置中关掉代理就能使用了(亲测可以打开)
但是总不能每次都把代理给关了啊
所以还有一个(无效)的方法
如果你配置过国内镜像,在C盘用户文件下,
有个隐藏文件(当用户第一次运行 conda config 命令时,将会在用户的家目录创建该文件):.condarc
ps. 如果你没有运行过,可以添加到环境变量后去cmd里运行一下就有这个文件了。
修改里面的内容为代理的内容(其中7890位代理端口)
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- defaults
show_channel_urls: true
proxy_servers: {http: 127.0.0.1:7890, https: 127.0.0.1:7890}
最后发现::还是不能用!!!()。。。
Solution3(有效!)
1、问题根源:
出现问题的主要原因是Urllib3 的 1.26.4 版本中存在一个错误。
在 Python 3.4 和 2.7.9 中,SSLContext 上有一个 check_hostname 属性,它将让 SSLContext 实例处理检查 do_handshake 中的主机名。urllib3 在可能的情况下依靠它而不是自己进行检查会很好。我认为这与将 SSLContext 用作 TLS 内容的"bag of configuration"的其他内容相得益彰。这可以通过确定 SSLContext 对象是否具有 check_hostname 属性来检测。有一个缺点,这依赖于将主机名作为 SSLContext().wrap_socket(server_name=)的一部分传递。最初这仅在 OpenSSL 启用了 SNI 时才有效。但是即使未启用 SNI,Python 3.4.3 和 2.7.9 也会接受 server_name。
所以就会导致anacond 或python3 报check_hostname requires server_hostname错误
2、解决方法:
将urllib3的版本降低到1.25.7就可以啦
先把urllib3卸载了
再安装指定的低版本
pip uninstall urllib3
pip install urllib3==1.25.7
但是安装的时候发现会报错:
windows环境用pip安装第三方库Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retrie s exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, ‘[SSL: UNKNOWN _PROTOCOL] unknown protocol (_ssl.c:852)’),)) - skipping
这是因为: https://pypi.org/simple/pip/ 这个地址,被网络的提供方拦截了
解决方案为:换用其他的源来安装
# python3 常用替换镜像源
1)http://mirrors.aliyun.com/pypi/simple/ 阿里云
2)https://pypi.mirrors.ustc.edu.cn/simple/ 中国科技大学
3)http://pypi.douban.com/simple/ 豆瓣
4)https://pypi.tuna.tsinghua.edu.cn/simple/ 清华大学
5)http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
可以指定源来安装urllib3:
pip install urllib3==1.25.7 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
最后提示安装成功,就可以使用Anaconda 啦。
以上是关于Anaconda Navigator 启动 报错check_hostname requires server_hostname 全网解决方案汇总的主要内容,如果未能解决你的问题,请参考以下文章
Anaconda-Navigator启动后闪退的解决方案(图文详解)
Anaconda-Navigator启动后闪退的解决方案(图文详解)
Anaconda-Navigator启动后闪退的解决方案(图文详解)