【发布时间】:2022-01-02 18:10:41
【问题描述】:
在向 binance 发出 Api 请求时,在使用 pyinstaller 将 main.py 构建为 exe 后,我收到此错误:
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI76602\certifi\cacert.pem
在我运行机器人的服务器上和本地机器上:
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: C:\Users\USER\PycharmProjects\pythonproject2\dist\cacert.pem
两者错误的确切位置是:
File "requests\adapters.py", line 227, in cert_verify
在服务器上,该程序已经运行了一个多星期,没有任何问题,直到 2 天前我开始收到 OSError。但只有 API 调用导致错误,程序仍在运行,websocket 仍在接收数据。
我尝试在python requests can't find a folder with a certificate when converted to .exe接受的答案中添加代码
我也试过了:
pip config set global.cert "path\to\cacert.pem"
使用 cacert.pem 找到正确的路径
python -c "import certifi; print(certifi.where())"
这些都不起作用,目前我发现的唯一解决方法是将 cacert.pem 文件手动复制到 OSError 说它正在寻找它的位置(cacert.pem 文件)。
但我以前从未这样做过。最近我更新了我的 python 版本,然后由于 websocket 问题再次降级。我通过完全卸载 python 3.10 并从 PATH 中删除所有引用然后重新安装 3.9.7 并添加所有 PATH 变量来做到这一点。
有人知道是什么原因造成的吗?当我在 pycharm 本身中运行脚本时,我没有收到此错误,我还注意到 global.cert 与本地计算机上的 OSError 路径不同,但我不知道如何从 cacert.pem 文件中更改它的外观.
【问题讨论】:
标签: python ssl python-requests pycharm ca