Python遇到的坑--ValueError: check_hostname requires server_hostname

简介: 原因:这个其实跟选用的python版本的关系不大,主要原因是因为每次使用 pip install 命令下载插件的时候,下载的都是最新的版本,比如下载requests插件,它会自动的将依赖的urllib3这个插件也安装,然后依赖的插件版本太高,就导致了这个报错的问题。

最近在新公司电脑上搭建python环境的时候,现在python更新到3.9版本了,然后下载下来之后,配好环境变量,然后安装requests插件,然后写一个简单的代码发送请求,结果发现居然报错了:

import requests
res = requests.get(url="https://blog.csdn.net/liboshi123/", verify=False)

运行上面的代码的时候,发现报了下面的错误:

  raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname

微信图片_20220114114308.png


报错的原因:

这个其实跟选用的python版本的关系不大,主要原因是因为每次使用 pip install 命令下载插件的时候,下载的都是最新的版本,比如下载requests插件,它会自动的将依赖的urllib3这个插件也安装,然后依赖的插件版本太高,就导致了这个报错的问题。


所以说,一般遇到这种莫名其妙的问题的时候,可以先去看一下是不是插件的问题导致的,解决措施就是 将urllib3插件的版本降低就可以,当然,直接在安装requests插件的时候,选择用低版本也可以解决这个问题。比如用下面的命令指定版本进行安装:

pip install requests==2.20
或者使用下面的命令降低版本:
pip install urllib3==1.25.8

这种类似的问题,在使用一些框架的时候经常会遇到,比如有的小伙伴在学习django,然后照着别人博客写的文章操作,最后报错,很有可能就是插件的版本导致的。


另外,在线安装插件时,如果插件下载过慢,或者报错的话,可以在插件的命令后面加上 -i 指定插件安装的源。

pip install 插件名称  -i http://mirrors.aliyun.com/pypi/simple

有时候报插件找不到的话,就换一个源试试。

不想每次都指定源进行安装的话 ,那就在用户名下文件夹下建一个pip的文件夹,然后新建pip.ini的配置文件,写入下面的内容就行(具体的源可以自己选择):{创建这个配置文件的存放位置有很多种方式都可以,感兴趣的可以自己去试试,比如pip所在目录下,或者%APPDATA%目录下去新建文件夹。}

[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com

另外,有些插件通过上面的在线方式就是容易出现报错的,可以尝试用离线安装的方式去安装插件,去网上下载whl格式的文件进行安装,比如,可以在下面的链接下下载:

whl格式插件:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

pip install xxx.whl

官网下载插件:

https://pypi.org/

解压后,在目录执行:python setup.py install

相关文章
|
8天前
|
Nacos 开发者
nacos报错 Server check fail, please check server 127.0.0.1 ,port 9848 is available , error ={}
在配置文件中指定的Nacos服务器地址未被项目使用,程序仍尝试连接到127.0.0.1。开发者寻求帮助排查问题,已花费多天未果。
成功解决ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos an
成功解决ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos an
成功解决ProxyError: Conda cannot proceed due to an error in your proxy configuration.Check for typos an
|
NoSQL PHP Redis
Laravel Predis Error while reading line from the server.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_21158419/article/details/53610445 问题...
3780 0
|
7月前
|
Shell 网络安全 Ruby
Pods hostname “upyun.gems.ruby-china.org” does not match the server certificate
Pods hostname “upyun.gems.ruby-china.org” does not match the server certificate
41 0
|
3月前
|
测试技术
Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded 的解决办法
Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded 的解决办法
125 0
|
8月前
|
SQL 关系型数据库 MySQL
check the manual that corresponds to your MySQL server version for the right syntax to use near lin
注意这种一般情况下是语法问题,说明mysql的各种语句还是不够熟练, (1)看表名是不是使用了Mysql的关键字,如果是,请立马改掉; (2)语句给出哪里错误,如我的题目中给出“near”,说明在那附近有问题。 (3)检查mybatis中mapper里sql语句占位符是否写对,我的问题是将#{name}写成了#(name),尴尬。
133 0
|
8月前
|
Python
pip安装模块报错ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed
pip安装模块报错ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed
155 0
|
11月前
|
网络虚拟化
ValueError: check_hostname requires server_hostname的解决办法
报错ValueError: check_hostname requires server_hostname通常是因为版本冲突等原因,查遍网上众多大佬总结的经验后,最终发现是由网络代理导致的问题,即我们通常说的vpn问题。
195 0
Anaconda ValueError:check_hostname requires server_hostname
Anaconda ValueError:check_hostname requires server_hostname
106 0
Anaconda ValueError:check_hostname requires server_hostname
|
Python
python报错——check_hostname requires server_hostname
python报错——check_hostname requires server_hostname
249 0
python报错——check_hostname requires server_hostname