首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OSError:找不到合适的TLS CA证书包

OSError:找不到合适的TLS CA证书包
EN

Stack Overflow用户
提问于 2021-11-24 10:43:45
回答 1查看 6.2K关注 0票数 4

在使用pyinstaller生成main.py to exe之后,当发出Api请求到二进制时,我会得到以下错误:

代码语言:javascript
运行
复制
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI76602\certifi\cacert.pem 

在运行机器人的服务器上,在本地机器上运行:

代码语言:javascript
运行
复制
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: C:\Users\USER\PycharmProjects\pythonproject2\dist\cacert.pem 

这两个错误的确切位置是:

代码语言:javascript
运行
复制
File "requests\adapters.py", line 227, in cert_verify

在服务器上,程序已经连续运行了一个多星期,没有问题,直到两天前我开始获得OSError。但是只有API调用导致程序仍在运行时出现错误,websockets仍在接收数据。

我尝试在python requests can't find a folder with a certificate when converted to .exe接受的答案中添加代码

我也试过:

代码语言:javascript
运行
复制
pip config set global.cert "path\to\cacert.pem"

具有正确的cacert.pem路径,使用

代码语言:javascript
运行
复制
python -c "import certifi; print(certifi.where())"

这些方法都不起作用,目前我找到的唯一解决办法是手动将cacert.pem文件复制到OSError表示正在查找它的位置( cacert.pem文件)。

但我以前从没这么做过。最近,由于websocket问题,我更新了python版本,然后再次降级。为此,我完全卸载python 3.10,从PATH中删除所有引用,然后重新安装3.9.7,并添加所有路径变量。

有人知道是什么导致了这一切吗?当我以pycharm本身运行脚本时,我没有得到这个错误,我还注意到global.cert与本地机器上的OSError不是相同的路径,但是我不知道如何从cacert.pem文件中更改它的位置。

EN

回答 1

Stack Overflow用户

发布于 2021-12-23 19:32:17

好的,现在我找到了一个临时的解决方案。同样发生的是,在程序寻找cacert.pem文件的地方,没有这样的文件。因此,我发现了一个解决办法:在您的项目终端中,转到外部库-> Python3.9 ->站点-packages ->证书-> core.py

然后寻找这一守则:

代码语言:javascript
运行
复制
import os

try:
    from importlib.resources import path as get_path, read_text

    _CACERT_CTX = None
    _CACERT_PATH = None

    def where():
    .............

现在,当您运行程序时,当它抛出错误时,获取它查找cacert.pem的路径。将cacert.pem文件粘贴到临时文件夹或Temp\2中,等等。那就抄这条路。将代码更改为:

代码语言:javascript
运行
复制
import os

try:
    from importlib.resources import path as get_path, read_text

    _CACERT_CTX = None
    _CACERT_PATH = "copied path"

    def where():
    .............

另外,我在新系统上编译了完全相同的代码,一切都很好。所以更有可能的问题是,当我安装和卸载3.10时。如果我找到确切的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70094634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档