weixin_39605414 2020-11-20 23:28
浏览 0

ssl.SSLError in "Manage Packages..."

Original report by Anonymous.

After selecting menu option "Tools -> Manage Packages..." in Thonny editor, whatever I try in the "Manage packages" window (find some package or just click on an installed package), I got an internall error:


Traceback (most recent call last):
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\tkinter\__init__.py", line 749, in callit
    func(*args)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\pip_gui.py", line 1147, in poll_fetch_complete
    _, bin_data = url_future.result()
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\concurrent\futures\_base.py", line 425, in result
    return self.__get_result()
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\concurrent\futures\_base.py", line 384, in __get_result
    raise self._exception
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\concurrent\futures\thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\pip_gui.py", line 1098, in load_url
    with urlopen(url, timeout=timeout) as conn:
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 525, in open
    response = self._open(req, data)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 543, in _open
    '_open', req)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 503, in _call_chain
    result = func(*args)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 1360, in https_open
    context=self._context, check_hostname=self._check_hostname)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\urllib\request.py", line 1285, in do_open
    h = http_class(host, timeout=req.timeout, **http_conn_args)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\http\client.py", line 1368, in __init__
    context = ssl._create_default_https_context()
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\ssl.py", line 578, in create_default_context
    context.load_default_certs(purpose)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\ssl.py", line 479, in load_default_certs
    self._load_windows_store_certs(storename, purpose)
  File "C:\Users\nebojsa\AppData\Local\Programs\Thonny\lib\ssl.py", line 471, in _load_windows_store_certs
    self.load_verify_locations(cadata=certs)
ssl.SSLError: nested asn1 error (_ssl.c:3926)

Environment: Thonny 3.0.3, Windows 10 (64-bit), Python 3.7.1 (32-bit, bundled), Tk 8.6.8, there is also regularly installed (non-bundled) Python 3.7.1

Command 'python -m pip install ...' works fine from the "Tools -> Open system shell ..." command prompt

It could be related with the issue #448, but it is marked as resolved.

该提问来源于开源项目:thonny/thonny

  • 写回答

5条回答 默认 最新

  • weixin_39605414 2020-11-20 23:28
    关注

    Does following program fail for you as well?

    
    from urllib.request import urlopen
    f = urlopen("https://openssl.org")
    print(f.read()[:100])
    

    'python -m pip install` uses its own bundled certs, this can explain why it works while urlopen in normal context doesn't.

    I assume there is some anomaly with your Windows set-up. I found this issue, but it should be fixed in 3.7: https://bugs.python.org/issue26313

    At the moment I don't know what to do. Maybe someone else can suggest or add something?

    评论

报告相同问题?