在使用pip安装Python软件包时,有时会遇到与 SSL/TLS 相关的问题。一种常见情况是在使用VPN时出现以下错误信息 ValueError: check_hostname requires server_hostname:
ValueError: check_hostname requires server_hostname
为了解决这个问题,可以尝试通过在pip install命令中添加--trusted-host选项来临时绕过SSL/TLS证书验证,另外的方法就是关闭代理选项。该选项可告知pip信任特定的主机,即使其存在证书验证问题。
接下来我们来一个一劳永逸的办法,解决问题的第一步是找到pip的配置文件:
-
在Linux和macOS上:
- 全局配置文件位于/etc/pip.conf。
- 用户特定的配置文件位于~/.config/pip/pip.conf。
-
在Windows上:
- 全局配置文件位于%PROGRAMDATA%\pip\pip.ini。
- 用户特定的配置文件位于%APPDATA%\pip\pip.ini。
接下来,打开配置文件并添加或修改以下内容:
[global]
index-url = http://your-mirror-url/simple
trusted-host = your-mirror-host
在上述配置中,将http://your-mirror-url/simple
替换为所需使用的镜像URL。例如,如果想使用腾讯云镜像,可以使用以下配置:
[global]
index-url = http://mirrors.cloud.tencent.com/pypi/simple
trusted-host = mirrors.cloud.tencent.com
需要注意的是,将index-url
中的"https"修改为"http",以便绕过SSL/TLS。但是请谨慎使用此选项,因为绕过SSL/TLS证书验证可能会带来安全风险。
现在,当运行pip install <module-name>
命令时,它应该能够正确使用指定的镜像并跳过指定主机的SSL/TLS证书验证。如果问题仍未解决,您可以尝试使用其他镜像,或者暂时关闭系统代理(自行百度)来查看是否有帮助。