解决 pip 安装时的 SSL/TLS 问题

发布时间 2023-12-17 18:24:03作者: 顾平安

在使用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证书验证。如果问题仍未解决,您可以尝试使用其他镜像,或者暂时关闭系统代理(自行百度)来查看是否有帮助。