- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 BERT 从 Huggingface 下载分词器。
我正在执行:
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
错误:
<Path>\tokenization_utils_base.py in from_pretrained(cls, pretrained_model_name_or_path, *init_inputs, **kwargs)
1663 resume_download=resume_download,
1664 local_files_only=local_files_only,
-> 1665 use_auth_token=use_auth_token,
1666 )
1667
<Path>\file_utils.py in cached_path(url_or_filename, cache_dir, force_download, proxies, resume_download, user_agent, extract_compressed_file, force_extract, use_auth_token, local_files_only)
1140 user_agent=user_agent,
1141 use_auth_token=use_auth_token,
-> 1142 local_files_only=local_files_only,
1143 )
1144 elif os.path.exists(url_or_filename):
<Path>\file_utils.py in get_from_cache(url, cache_dir, force_download, proxies, etag_timeout, resume_download, user_agent, use_auth_token, local_files_only)
1347 else:
1348 raise ValueError(
-> 1349 "Connection error, and we cannot find the requested files in the cached path."
1350 " Please try again or make sure your Internet connection is on."
1351 )
ValueError: Connection error, and we cannot find the requested files in the cached path. Please try again or make sure your Internet connection is on.
基于关于 github in huggingface's repo 的类似讨论,我收集到上述调用要下载的文件是:https://huggingface.co/bert-base-uncased/resolve/main/config.json
虽然我可以在浏览器上很好地访问该 json 文件,但我无法通过请求下载它。我得到的错误是:
>> import requests as r
>> r.get('https://huggingface.co/bert-base-uncased/resolve/main/config.json')
...
requests.exceptions.SSLError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /bert-base-uncased/resolve/main/config.json (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
检查页面证书时 - https://huggingface.co/bert-base-uncased/resolve/main/config.json ,我看到它是由我的 IT 部门签署的,而不是我希望找到的标准 CA 根。基于讨论here ,看起来 SSL 代理做这样的事情似乎是合理的。
我的 IT 部门的证书在受信任的机构列表中。但是 requests 似乎没有考虑信任证书的列表。
从 a stack-overflow discussion on how to let requests trust a self-signed certificate 中得到启发我还尝试使用为 huggingface 显示的 ROOT 证书附加 cacert.pem(curl-config --ca 指向的文件)并将此 pem 的路径添加到 REQUESTS_CA_BUNDLE
export REQUESTS_CA_BUNDLE=/mnt/<path>/wsl-anaconda/ssl/cacert.pem
但是一点用都没有。
您知道我如何让请求知道可以信任我的 IT 部门的证书吗?
P.S:如果重要的话,我在 Windows 上工作,也在 WSL 中面对这个问题。
最佳答案
我最终可以让一切正常工作 - 在这里分享相同的内容,以防将来它对其他人有用。
解决方案非常简单,我最初尝试过,但在尝试时犯了一个小错误。无论如何,这里是解决方案:
从浏览器访问 URL(在我的示例中为 huggingface.co URL)并访问该站点附带的证书。
一个。在大多数浏览器(chrome/firefox/edge)中,您可以通过单击地址栏中的“锁定”图标来访问它。
保存所有证书 - 一直到根证书。
一个。我认为,从技术上讲,您可以只保 stub 证书,它仍然可以工作,但我还没有尝试过。如果我有时间尝试一下,我可能会更新这个。如果你碰巧在我之前尝试过,请发表评论。
按照 this stack overflow answer 中提到的步骤进行操作获取 CA Bundle 并在编辑器中将其打开,以将上一步中下载的证书附加到文件中。
一个。原始 CA 捆绑文件在每个证书之前都有标题行,提及该证书属于哪个 CA 根。我们要添加的证书不需要这样做。我已经这样做了,我想额外的空格、回车等可能导致它早些时候对我不起作用。
在我的 python 程序中,我更新了环境变量以指向更新后的 CA 根包
os.environ['REQUESTS_CA_BUNDLE'] = 'path/cacert.crt'
有人可能认为,由于大多数 python 包使用“请求”来进行此类 GET 调用,而“请求”使用“certifi”包指向的证书。那么,为什么不找到 certifi 指向的证书的位置并更新它。它的问题 - 每当您使用 conda 更新包时,certifi 也可能会更新,导致您的更改被冲走。因此,我发现动态更新环境变量是一个更好的选择。
干杯
关于python - BertTokenizer.from_pretrained 错误输出 "Connection error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66767832/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!