我试图在.exe中制作.py.在.py应用程序工作正常,但我使用py2exe在.exe中构建它后,我收到此错误:
Traceback (most recent call last):
File "filename.py", line 210, in <module>
File "requests\api.pyc", line 55, in get
File "requests\api.pyc", line 44, in requests
File "requests\sessions.pyc", line 461, in request
File "requests\sessions.pyc", line 567, in send
File "requests\adapters.pyc", line 399, in send
requests.exceptions.SLLError: [Errno 185090050] _ssl.c:344: error: 0B084002:x509 certificate routines: X509_load_cert_crl_file:system lib
Run Code Online (Sandbox Code Playgroud)
并且文件中的行210是这样的
r2 = requests.get('https://www.hitbox.tv/api/chat/servers', timeout=timeoutDefault)
Run Code Online (Sandbox Code Playgroud)
setup.py是这样的:
from distutils.core import setup
import py2exe
setup(console=['filename.py'])
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题?
该requests模块(或实际上是urllib3下方)无法打开CA证书文件.
如果您不想验证服务器的证书,可以将呼叫更改为:
r2 = requests.get('https://www.hitbox.tv/api/chat/servers',
timeout=timeoutDefault, verify=False)
Run Code Online (Sandbox Code Playgroud)
如果您关心证书(并且您应该),请确保CA证书文件与您的应用程序捆绑在一起.根据requests文件:
您还可以通过验证CA_BUNDLE文件的路径以获取私有证书.您还可以设置REQUESTS_CA_BUNDLE环境变量.
如果将verify设置为False,请求也可以忽略验证SSL证书.
见这里:http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification
| 归档时间: |
|
| 查看次数: |
7618 次 |
| 最近记录: |