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版本升级的话,也要注意对应的脚本会不会被替换

相关推荐
全栈弄潮儿20 分钟前
Python实战第7期:字典与集合
后端·python·编程语言
2603_9651481130 分钟前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya1 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来1 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
曲径海盗2 小时前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal2 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python
我命由我123452 小时前
智能助手通用问答边界
人工智能·python·学习·ai·学习方法·ai编程·智能体
Angeldream1233 小时前
第 4 章 医学影像预处理
图像处理·人工智能·python·医学影像·医学影像处理
Web3&Basketball3 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
把我格子衫拿来3 小时前
医学影像重采样:spacing 改了,为什么模型位置也跟着错了?
python·dicom·医学影像·simpleitk·重采样