Преодоление SSL: CERTIFICATE_VERIFY_FAILED в Windows 10 при использовании urllib3 - PullRequest
0 голосов
/ 24 мая 2019

Этот простой код на Python отображает искусство Ascii и взят из следующего ответа на вопрос: https://qr.ae/TWNB4S. У меня установлена ​​Python версии 3.7.3 на моем ноутбуке с Windows 10 через независимый установщик из python.org, а также через anacondaлюкс.Код отлично работает на ноутбуке Jupyter, запущенном через Anaconda.Но когда я запускаю тот же код через 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:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 344, in _make_request
    self._validate_conn(conn)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 843, in _validate_conn
    conn.connect()
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connection.py", line 350, in connect
    ssl_context=context)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\ssl_.py", line 355, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 412, in wrap_socket
    session=session
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 853, in _create
    self.do_handshake()
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\ssl.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:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\ascii\__init__.py", line 17, in loadFromUrl
    fd = http.request('GET', URL)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\request.py", line 68, in request
    **urlopen_kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\request.py", line 89, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\poolmanager.py", line 326, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen
    **response_kw)
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\billn\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\util\retry.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)')))

1 Ответ

0 голосов
/ 24 мая 2019

Если вы еще этого не сделали, вы можете попробовать установить пакет certifi из pip. В противном случае, существует ряд решений здесь , некоторые из которых охватывают, как убедиться, что у вас установлены сертификаты, и другие, которые показывают, как отключить проверку сертификатов.

...