当向币安发出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 调用会导致错误,程序仍然在运行,WebSockets 仍在接收数据。
我尝试添加了这个Python请求无法在转换为.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中运行脚本时,我不会收到这个错误,我还注意到全局证书不是本地机器上OSError所指定的路径,但我不知道如何更改它搜索cacert.pem文件的位置。