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启动后闪退的解决方案(图文详解)

Anaconda-Navigator启动后闪退的解决方案(图文详解)

无法从 Anaconda Navigator (Windows) 启动 Jupyter Note

Anaconda 已安装但无法启动 Navigator