juypter notebook启动ssl报错的处理记录

错误信息如下:

(d2l) D:\coding\deep_learn\d2l-zh\pytorch>jupyter notebook

Traceback (most recent call last):

File "D:\software_env\anaconda3\envs\d2l\lib\runpy.py", line 194, in _run_module_as_main

return _run_code(code, main_globals, None,

File "D:\software_env\anaconda3\envs\d2l\lib\runpy.py", line 87, in _run_code

exec(code, run_globals)

File "D:\software_env\anaconda3\envs\d2l\Scripts\jupyter-notebook.EXE\main.py", line 4, in <module>

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\notebook\notebookapp.py", line 59, in <module>

from tornado import httpserver

File "<frozen importlib._bootstrap>", line 1039, in _handle_fromlist

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\init.py", line 66, in getattr

return importlib.import_module("." + name, name)

File "D:\software_env\anaconda3\envs\d2l\lib\importlib\init.py", line 127, in import_module

return _bootstrap._gcd_import(namelevel:, package, level)

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\httpserver.py", line 32, in <module>

from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\http1connection.py", line 34, in <module>

from tornado import iostream

File "<frozen importlib._bootstrap>", line 1039, in _handle_fromlist

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\init.py", line 66, in getattr

return importlib.import_module("." + name, name)

File "D:\software_env\anaconda3\envs\d2l\lib\importlib\init.py", line 127, in import_module

return _bootstrap._gcd_import(namelevel:, package, level)

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\iostream.py", line 40, in <module>

from tornado.netutil import ssl_wrap_socket, _client_ssl_defaults, _server_ssl_defaults

File "D:\software_env\anaconda3\envs\d2l\lib\site-packages\tornado\netutil.py", line 35, in <module>

_client_ssl_defaults = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)

File "D:\software_env\anaconda3\envs\d2l\lib\ssl.py", line 750, in create_default_context

context.load_default_certs(purpose)

File "D:\software_env\anaconda3\envs\d2l\lib\ssl.py", line 574, in load_default_certs

self._load_windows_store_certs(storename, purpose)

File "D:\software_env\anaconda3\envs\d2l\lib\ssl.py", line 566, in _load_windows_store_certs

self.load_verify_locations(cadata=certs)

ssl.SSLError: ASN1: NOT_ENOUGH_DATA not enough data (_ssl.c:4194)

通过conda安装深度学习框架出现错误,参考 https://blog.csdn.net/xeqja/article/details/162229894 的解释,大概是证书过多导致python启动相关的证书逻辑出现错误

解决方法:

将原来旧的代码进行替换

这是旧的代码

python 复制代码
def _load_windows_store_certs(self, storename, purpose):
    certs = bytearray()
    try:
        for cert, encoding, trust in enum_certificates(storename):
            if encoding == "x509_asn":
                if trust is True or purpose.oid in trust:
                    certs.extend(cert)
    except PermissionError:
        warnings.warn("unable to enumerate Windows certificate store")
    return certs

替换为新的代码

python 复制代码
def _load_windows_store_certs(self, storename, purpose):
    certs = bytearray()
    try:
        for cert, encoding, trust in enum_certificates(storename):
            if encoding == "x509_asn":
                if trust is True or purpose.oid in trust:
                    try:
                        certs.extend(cert)
                    except Exception:
                        continue  # 跳过坏证书
    except PermissionError:
        warnings.warn("unable to enumerate Windows certificate store")
    return certs

替换成功后的截图:

注意点

替换的ssl.py是你通过conda安装后对应环境的,并不是conda的,如果只替换conda下的脚本,启动的时候,大概率还是有问题

如果对应python版本升级的话,也要注意对应的脚本会不会被替换

相关推荐
晓子文集13 小时前
Tushare接口文档:指数成分和权重(index_weight)
大数据·数据库·python·金融·量化投资
小大宇13 小时前
python pandas dataFrame sqlAlchemy案例
python·pandas
淼澄研学13 小时前
Python进阶实战:深入解析推导式与生成器等5大核心特性
开发语言·python
xlrqx14 小时前
商丘家电清洗培训零基础学习需掌握哪些要点零基础到底能不能学
python·学习
卷无止境14 小时前
Python虚拟环境江湖:从venv到uv,如何避开依赖冲突的坑
后端·python
玉鸯14 小时前
Agent Harness 工程核心架构拆解与 300 行代码实现
python·agent
米码收割机14 小时前
【Python】Django 电子设备商城系统(源码+说明文档)[独一无二]
开发语言·python·django
互联网中的一颗神经元14 小时前
小白python入门 - 38. 动态内容:接口优先与自动化扫盲
开发语言·python·自动化
卷无止境14 小时前
模块与包:Python 代码组织的两层逻辑
后端·python
夏日清风有你14 小时前
OpenDataLab 数据集下载
python