WSL中Jupyter Notebook仅中断后可连接的异常问题及修复方案
问题原因及修复方法
核心原因
- 版本兼容性冲突:Jupyter Notebook 6.x及部分旧版本与Tornado 6.2+版本不兼容——新版本Tornado已移除
tornado.ioloop.IOLoop的io_loop属性,但旧版Jupyter仍在调用该属性,导致启动时服务初始化异常。终端会误报服务已运行,但实际未建立有效连接;按下Ctrl+C中断时,异常处理流程意外激活了服务,因此能短暂访问。 - WSL网络绑定限制:默认绑定
127.0.0.1仅允许WSL内部访问,Windows系统的浏览器无法直接穿透访问WSL的回环地址。
修复步骤
方法一:降级Tornado到兼容版本
在Anaconda环境中执行命令,将Tornado降级至6.1版本(该版本保留io_loop属性,与旧版Jupyter兼容):
conda install tornado=6.1 -y
若使用pip管理依赖,可执行:
pip install tornado==6.1
方法二:修改Jupyter配置适配环境
- 生成Jupyter配置文件(未生成过则执行):
jupyter notebook --generate-config
- 打开配置文件(路径通常为
~/.jupyter/jupyter_notebook_config.py),修改以下参数:- 设置绑定地址为所有网卡,允许Windows浏览器访问:
c.NotebookApp.ip = '0.0.0.0' - 可选:指定固定端口避免随机端口转发问题:
c.NotebookApp.port = 8888 - 若降级Tornado无效,添加适配新版本Tornado的配置:
import tornado.ioloop c.NotebookApp.ioloop = tornado.ioloop.IOLoop.current
- 设置绑定地址为所有网卡,允许Windows浏览器访问:
方法三:替换为JupyterLab(长期解决方案)
JupyterLab对新版本Tornado兼容性更好,可直接安装替代:
conda install -c conda-forge jupyterlab -y
启动时绑定所有网卡确保可访问:
jupyter lab --ip=0.0.0.0
内容的提问来源于stack exchange,提问作者aentum
相关产品推荐
相关产品推荐

