Couldn‘t reach ‘din0s/asqa‘ on the Hub (SSLError)

项目场景:

在使用 Hugging Face datasets 库加载远程数据集(如 din0s/asqa)时,开启Watt Toolkit加速之后,浏览器可正常访问 Hugging Face(https://huggingface.co/),但 Python 代码执行 load_dataset 时却抛出 SSL 连接错误,导致无法从 Hub 获取数据。
在这里插入图片描述

问题描述

执行以下代码加载数据集时,抛出异常:

from datasets import load_dataset  

try:  
    ds = load_dataset("din0s/asqa", "default", split="dev")  
    print(f"数据集加载成功,样本数:{len(ds)}")  
except Exception as e:  
    print(f"加载失败: {e}") 

报错信息:
加载失败: Couldn’t reach ‘din0s/asqa’ on the Hub (SSLError)


原因分析:

  1. 证书信任链的「分离性」
    系统层面:Watt 代理的证书已安装到系统信任库(如 Windows 根证书),因此浏览器可正常访问(信任代理证书)。
    Python 层面:datasets 依赖 requests 库,而 requests 默认使用 certifi 库维护的证书列表(独立于系统信任库)。若 Watt 证书未加入 certifi 的信任列表,Python 会将代理识别为 “中间人攻击”,拒绝建立连接。
  2. 代理的「中间人特性」
    Watt 作为代理,会拦截 HTTPS 请求并通过自身证书解密流量。若 Python 不信任该证书,会直接触发 SSLError

解决方案:

步骤 1:定位 certifi 证书文件

运行以下代码,找到 certifi 维护的证书列表路径(cacert.pem):

import certifi  
print(certifi.where())  
# 输出示例:C:\Users\用户名\venv\Lib\site-packages\certifi\cacert.pem  

步骤 2:获取 Watt 代理证书

打开 Watt Toolkit → 网络加速 → 加速设置 → 点击 「打开证书文件夹」,找到 SteamTools.Certificate.cer(或类似名称的证书文件)。
用文本编辑器打开该证书,复制其 完整文本内容(包括 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)。
在这里插入图片描述

步骤 3:将 Watt 证书添加到 certifi 信任列表

打开步骤 1 中找到的 cacert.pem 文件(建议用管理员权限编辑)。
将 Watt 证书的文本内容粘贴到 cacert.pem 的 末尾(确保无多余空行),保存文件。
在这里插入图片描述

步骤 4:重新运行代码

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值