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

相关推荐
菜鸡66665 分钟前
绕过cf验证,部署 FlareSolverr 服务使用request处理
python·cloudflare
前端 贾公子31 分钟前
第10章:RAG(2)
开发语言·python
2601_962299491 小时前
使用 Python 将 CSV 转为 PDF(含表格样式美化)
python·pdf·csv·spire.xls·表格样式
2601_962077981 小时前
利用Python,四步掌握机器学习
python·机器学习·数据挖掘·数据分析·编程
axinawang2 小时前
requests--爬取网页内容
python
盼小辉丶2 小时前
PyTorch强化学习实战——融合人类示范数据的高效强化学习
人工智能·pytorch·python·深度学习·强化学习
聪明蛋子哟3 小时前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
李妍.3 小时前
PyTorch GPU 版安装记录(RTX 5060 + Python 3.14)
人工智能·pytorch·python
90后的晨仔3 小时前
Python 基础语法完整汇总
python
广慈新医知3 小时前
当健康问题越来越复杂,AI更适合先帮我们“把问题问清楚”
人工智能·python