You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

pip使用可信源仍遇SSL证书错误:requests_ntlm安装失败

解决pip安装requests_ntlm时的SSL错误问题

我之前也碰到过这种在代理环境下pip安装包时的SSL踩坑情况,给你几个实际试过有效的排查和解决方向:

  • 先检查代理的格式合法性
    要是你的密码里包含@:这类特殊字符,直接写在代理URL里会破坏格式,导致解析失败。这种情况得把特殊字符做URL编码转义,比如@换成%40:换成%3A。调整后的命令大概是这样:

    pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --proxy http://username:encoded_password@site.address:port requests_ntlm
    
  • 补全所有需要信任的PyPI相关主机
    你之前换过索引URL,但可能漏掉了包实际下载的源主机files.pythonhosted.org。试试把所有关联的PyPI域名都加入可信列表,同时指定纯HTTP索引:

    pip install --index-url http://pypi.python.org/simple/ --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --proxy http://username:password@site.address:port requests_ntlm
    

    很多包的安装包文件存在这个files域名下,没加信任的话照样会触发SSL验证错误。

  • 排查本地SSL证书问题
    要是系统缺少必要的根CA证书,也会导致SSL握手失败。可以尝试指定系统的证书路径,或者临时关闭证书验证(注意:后者有安全风险,仅限测试环境用):

    # 指定证书路径
    pip install --proxy http://username:password@site.address:port --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --cert /path/to/your/cacert.pem requests_ntlm
    # 临时关闭证书验证(不推荐生产环境)
    pip install --proxy http://username:password@site.address:port --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --no-check-certificate requests_ntlm
    
  • 用pip配置文件持久化设置
    每次命令行堆一堆参数太麻烦,不如直接配置pip的全局设置文件:

    • Linux/macOS:在用户目录下创建~/.pip/pip.conf
    • Windows:在%APPDATA%\pip\目录下创建pip.ini
      写入以下内容:
    [global]
    proxy = http://username:password@site.address:port
    index-url = http://pypi.python.org/simple/
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org
    

    之后直接跑pip install requests_ntlm就能自动读取这些配置,不用再手动加参数了。

另外,你提到加-v只看到部分输出,建议把完整的verbose日志贴出来,比如有没有明确提示“certificate verify failed”或者“cannot connect to proxy”,这样能更快定位到底是代理连接问题还是证书验证问题。

内容的提问来源于stack exchange,提问作者penfold1992

火山引擎 最新活动