有一些代码,它可以处理原始代码,但是一旦我使用pyinstaller将其转换为可执行文件,我就会得到requests.packages.urllib3.exceptions.SSLError: [Error 2] no such file or directory
它总是与原始代码一起使用,但不适用于pyinstaller
尝试使用来自python 2和python3的请求,并在多台PC上进行了尝试。
我希望将.exe与pyinstaller一起使用时执行代码
答案 0 :(得分:1)
最后,我找到了一个解决方案,方法是使用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
参数中。
答案 1 :(得分:0)
发布一些代码,没有它,我会盲目走。但是我可以邀请您,您的代码相对位置(例如./file)中有某处,而所有内容都在原始目录中(原始代码)它可以工作,但是在编译后,程序找不到它
答案 2 :(得分:0)
如果有人有答案或建议某事,请这样做,我需要尽快解决!
答案 3 :(得分:0)
@Sid @Misieq。这是一个示例:
import requests
req_url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(req_url, timeout=10).json()
print(response)
此代码在python3 request_expample.py
下有效
但是用pyinstaller用pyinstaller --onefile --clean request_expample.py
生成可执行文件后,它显示错误:
Traceback (most recent call last):
File "requests/packages/urllib3/util/ssl_.py", line 267, in ssl_wrap_socket
FileNotFoundError: [Errno 2] No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "requests/adapters.py", line 370, in send
File "requests/packages/urllib3/connectionpool.py", line 544, in urlopen
File "requests/packages/urllib3/connectionpool.py", line 341, in _make_request
File "requests/packages/urllib3/connectionpool.py", line 761, in _validate_conn
File "requests/packages/urllib3/connection.py", line 238, in connect
File "requests/packages/urllib3/util/ssl_.py", line 269, in ssl_wrap_socket
requests.packages.urllib3.exceptions.SSLError: [Errno 2] No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "request_expample.py", line 4, in <module>
response = requests.get(req_url, timeout=10).json()
File "requests/api.py", line 69, in get
File "requests/api.py", line 50, in request
File "requests/sessions.py", line 465, in request
File "requests/sessions.py", line 573, in send
File "requests/adapters.py", line 431, in send
requests.exceptions.SSLError: [Errno 2] No such file or directory
[4537] Failed to execute script request_expample