You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

虚拟环境中urllib.request.urlopen证书验证失败,IPython正常求原因

问题根本原因分析
  • 虚拟环境与全局Python的CA证书配置不共享
    虚拟环境默认不会继承全局Python的CA证书存储配置,而你使用的IPython如果是全局安装的,会调用系统或全局Python的可信CA证书集合。注意你代码里写的是http://,但目标网站可能自动跳转到了HTTPS协议,此时虚拟环境中的urllib找不到可信证书,就触发了[SSL: CERTIFICATE_VERIFY_FAILED]错误。

  • Python版本或SSL模块行为差异
    如果全局IPython使用的Python版本,和虚拟环境内的Python版本不同,两者的SSL模块对证书验证的默认逻辑、证书存储路径可能存在差异。部分旧版本Python的虚拟环境可能存在证书路径配置缺失的问题。

  • 环境变量未继承
    全局环境中可能配置了REQUESTS_CA_BUNDLE、SSL_CERT_FILE这类指定自定义CA证书的环境变量,但虚拟环境启动时没有继承这些变量,导致urllib无法获取验证所需的证书文件。

快速验证方法

在虚拟环境和IPython中分别执行以下代码,对比输出的证书路径是否一致:

import ssl
print(ssl.get_default_verify_paths())

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:45:55