克服SSL:使用URLLIB3时在Windows 10上在Windows 10上进行了证书



python中的此简单代码显示ASCII ART,并取自以下Quora响应:https://qr.ae/twnb4s。我通过python.org以及Anaconda Suite在Windows 10笔记本电脑上安装了Python版本3.7.3。该代码在通过Anaconda启动的Jupyter笔记本上运行良好。但是,当我通过Pycharm IDE运行相同的代码时,我会得到SSL相关的错误。

我在线搜索了此错误,但找不到在Windows 10 Python 3.7.3安装上解决此问题的方法。但是它在我的Anaconda Python 3.7.3版本上正常工作。那么是否可以克服此错误?代码:

import ascii
output =  ascii.loadFromUrl("https://i.dailymail.co.uk/i/pix/2015/09/01/18/2BE1F43200000578-0-image-a-17_1441127603656.jpg")
print(output)

通过Pycharm IDE运行上述代码时的错误:

Traceback (most recent call last):
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 344, in _make_request
    self._validate_conn(conn)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 843, in _validate_conn
    conn.connect()
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connection.py", line 350, in connect
    ssl_context=context)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3utilssl_.py", line 355, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libssl.py", line 412, in wrap_socket
    session=session
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libssl.py", line 853, in _create
    self.do_handshake()
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
***ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)***
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:/Users/billn/Google Drive/Books/UDEMY - Complete Python 3 Bootcamp - Jose Portilla/gg.py", line 3, in <module>
    output = ascii.loadFromUrl("https://i.dailymail.co.uk/i/pix/2015/09/01/18/2BE1F43200000578-0-image-a-17_1441127603656.jpg")
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesascii__init__.py", line 17, in loadFromUrl
    fd = http.request('GET', URL)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3request.py", line 68, in request
    **urlopen_kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3request.py", line 89, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3poolmanager.py", line 326, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:UsersbillnAppDataLocalProgramsPythonPython37libsite-packagesurllib3utilretry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='i.dailymail.co.uk', port=443): Max retries exceeded with url: /i/pix/2015/09/01/18/2BE1F43200000578-0-image-a-17_1441127603656.jpg (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')))

如果您还没有,可以尝试从PIP安装celectifi软件包。否则,这里有许多解决方案,其中一些解决方案涵盖了如何确保您已安装证书,而其他则显示如何禁用证书验证。

最新更新