在终端pip 某库,提示check_hostname requires server_hostname 是什么问题,怎么解决
时间: 2023-07-22 16:39:23 浏览: 94
这个问题通常是由于 urllib3 库版本更新造成的。在 urllib3 版本为 1.25.11 及以上时,会默认启用 SSL 证书主机名检查 (hostname check),如果检查不通过则会抛出 `CertificateError: hostname 'xxx' doesn't match 'yyy'` 或类似的错误。
解决这个问题有两种方式:
1. 禁用主机名检查:在请求中添加 `verify=False` 参数即可禁用主机名检查。不过,这样做会降低安全性,因此不推荐在生产环境中使用。
例如,使用 requests 库发送请求时,可以这样设置:
```python
import requests
response = requests.get(url, verify=False)
```
2. 更新 SSL 证书:更新 SSL 证书可以解决这个问题,但具体操作方式因操作系统和安装环境不同而有所不同。如果您使用的是 Linux 系统,可以尝试更新 ca-certificates 包来更新 SSL 证书。
对于 Ubuntu 系统,可以使用以下命令更新 ca-certificates 包:
```
sudo apt-get install --reinstall ca-certificates
```
对于 CentOS 系统,可以使用以下命令更新 ca-certificates 包:
```
sudo yum reinstall ca-certificates
```
更新完 ca-certificates 包后,重新执行 pip 安装命令即可。
阅读全文