当前位置: 首页 > news >正文

Windows下Conda环境OpenSSL异常NOT_ENOUGH_DATA(_ssl.c:4194)导致HuggingFace、Datasets、PyTorch等SSL问题

情况一:未关闭xx

环境为Windows 11、Anaconda、Python3.8、RTX3050 Laptop、CUDA12.4。项目最初仅需运行 transformers 的 AutoTokenizer,但首先出现 ProxyError 和 ASN1: NOT_ENOUGH_DATA 错误。关闭 Clash 后 tokenizer 恢复正常,说明第一阶段主要受到一些程序影响。

如果报超时retry,可以在代码最开始的地方加一个镜像地址:

import os os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

情况二:datasets 导入即崩溃

随后执行 from datasets import load_dataset 即发生 ssl.create_default_context() 内部异常。由于 import 阶段尚未联网,因此判断不是 HuggingFace 下载失败,而是 Python SSL 初始化失败。

"ssl.py", line 566, in _load_windows_store_certs self.load_verify_locations(cadata=certs) ssl.SSLError: [ASN1: NOT_ENOUGH_DATA] not enough data (_ssl.c:4194)

最终解决方案

经过多轮验证,最终将 OpenSSL 从 3.5.7 降级到 3.5.5系列后,ssl.create_default_context() 恢复正常,datasets、aiohttp、transformers 均恢复工作。说明根因不是 Python 包,而是 OpenSSL 版本导致 Windows 证书加载异常。

conda install openssl=3.5.5
python -c "import ssl;ssl.create_default_context();print('OK')" OK

排查过程

依次检查 HTTP_PROXY、HTTPS_PROXY、HF_ENDPOINT、aiohttp、datasets、transformers、certifi、Pillow、PyTorch 等组件。

测试 ssl.create_default_context() 发现 Conda 环境失败,而系统 Python 正常。

进一步确认 import ssl; ssl.create_default_context(cafile=certifi.where()) 可以成功,因此 OpenSSL 对 PEM 文件解析正常,仅 Windows 证书仓库读取异常。

随后编写脚本遍历 Windows ROOT、CA、MY 证书,逐张验证 DER->PEM,所有证书均正常,排除了单张损坏证书。

OpenSSL 定位

检查 ssl.OPENSSL_VERSION、_ssl.pyd、where libssl-3-x64.dll、where libcrypto-3-x64.dll、PATH、conda list openssl 等。

确认 Conda 环境使用 OpenSSL 3.5.x,系统 Python 无异常。说明问题集中于 Conda 打包的 OpenSSL 与 Windows 证书仓库兼容性。

经验总结

以后若遇到 ASN1: NOT_ENOUGH_DATA,不要立即重装 datasets、aiohttp、transformers。

优先执行:

import ssl

ssl.create_default_context()

若此处失败,再测试:

import certifi

ssl.create_default_context(cafile=certifi.where())

若后者成功,则几乎可以确定问题位于 Windows Store 与 OpenSSL 的兼容层,而不是网络、代理或 HuggingFace 本身。

建议检查 OpenSSL 版本,并优先尝试降级至稳定版本。

http://www.jsqmd.com/news/1239392/

相关文章:

  • 第三方合作机构的API接口数据审计怎么做?
  • 2026南通市CPPM报考机构怎么选?从资质到服务的核验指南 - 企智芯
  • Java 21 新特性:虚拟线程
  • AI电影摄影技术:从剧本到画面的全流程自动化
  • 深度学习赋能声学超材料逆向设计实践
  • 2026年7月最新百达翡丽天津西青大悦春风里维修保养服务电话 - 百达翡丽官方售后中心
  • 昆明东川区铜都街道亨得利**名表服务中心电话公示(2026年7月最新) - 亨得利官方
  • Python AI开发必备:5大核心库实战解析与优化技巧
  • C++装饰器模式详解:动态扩展对象功能的瑞士军刀
  • 欧米茄走快怎么办**售后维修服务**公示(2026年7月最新) - 欧米茄服务中心
  • C++回调函数:原理、实现与应用场景详解
  • 商城系统怎么选才能满足企业级需求?企业级服务的选型框架与决策流程
  • 开源社区团购系统:PHP+uniapp+Vue全栈实践
  • 企业入驻福州科技园成本构成全解析 附实用选择参考
  • 2026 年现阶段沙洋评价高的灰泥订制厂家哪个好,揭秘这抹泥土,装修小白也能学会的秘密 - 企业推荐官【认证官方】
  • 谷歌设计“Frozen v2”芯片,或提Gemini推理效率6至10倍,芯片战略现“双轨制”
  • 江诗丹顿**保养价格查询|完整电话与维修地址**信息公告(2026年7月最新) - 江诗丹顿服务中心
  • 10分钟掌握CXX:构建Rust与C++类型安全互操作桥梁
  • 2026 年新消息:项城口碑好的液氧储罐回收订制厂家哪家专业,别扔!这“高危”储罐的回收变现秘密 - 行业甄选官
  • C++内存管理:从静态内存到动态内存的全面解析
  • A*启发式批次选择:提升CNN训练效率的智能样本选择方法
  • Banana Pro模型在企业级Python图像渲染中的应用
  • 中懿游比同类游戏外包团队强在哪里
  • ThinkBook开发环境配置与SQL Server安装指南
  • Mac用户必备的Xshell替代方案与SSH工具评测
  • AI网站隐藏功能大全:提升效率的实用技巧
  • 2026年7月最新宝珀昆明恒隆广场维修保养服务电话 - 宝珀官方售后服务中心
  • 2026年7月最新格拉苏蒂深圳怀德万象汇维修保养服务电话 - 亨得利钟表维修中心
  • TI McASP中断与状态寄存器配置实战:嵌入式音频系统稳定传输指南
  • JSON与JSONPATH核心技术解析与应用实践