python - requests.packages.urllib3.exceptions.SSLError: [错误 2] 没有这样的文件或目录
问题描述
有一些代码,它适用于原始代码,但是一旦我用 pyinstaller 将它变成可执行文件,我就会得到requests.packages.urllib3.exceptions.SSLError: [Error 2] no such file or directory
它总是适用于原始代码,但不适用于 pyinstaller
尝试使用来自 python 2 和 python3 的请求,在多台 PC 上尝试过。
我希望它在使用 .exe 和 pyinstaller 时执行代码
解决方案
最后我找到了一个解决方案,使用 certifi 来解析“cacert.pem”证书的完整路径。并在请求中使用它:
import requests
import certifi
req_url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(req_url, timeout=10, verify=certifi.where()).json()
print(response)
如果您使用另一个证书或想要移动到最终二进制文件,也可以将其复制到 pyinstaller 并将其用于verify
参数。
推荐阅读
- vue.js - 使用 Vue.js 使用网格/列表视图显示数据表
- python - 有什么方法可以最小化/隐藏来自 matplotlib 的图?
- gitlab - 在 gitlab CI/CD 中验证 gcloud 服务帐户
- c++ - 未显示 SFML C++ 的纹理
- php - 在 codeigniter 中使用 strtotime 条件 LIKE
- java - 如何使用 2D 阵列打印 5x5 房间网格?
- react-bootstrap-typeahead - React-Bootstrap-Typeahead - 如果未选择菜单项,则处理 ENTER 键
- python-3.x - 注入模块时,在 vscode 中带有 python 扩展的 vscode 中“找不到定义”
- python - Python - 将字符串数组拆分为json
- javascript - JsonWebTokenError:必须提供 jwt