anaconda下启动jupyter notebook失败
anaconda下启动jupyter notebook失败
一些无关紧要的碎碎念
终于到了毕业的日子了,这2个月都忙着实习和论文答辩,本来想在上一篇结束后把自己毕设的想法写到博客里,做完感觉整个东西没什么亮点,整个就一缝合怪(虽然做的时候感觉还蛮开心的),再加上实习又有了新的任务布置,这里就完全搁置了(直到前2周云服务商跟我说我的oss服务再过几天就要过期。。。)。最近用实习的工资买了台windows游戏本,想等论文定稿了,闲下来的时候好好研究一下windows下的开发环境搭建。
问题描述
因为实习上有个任务需要使用到python做一些excel库的研究,刚买的windows正好还没装python,想着能简则简,不行再说的态度。anaconda走起,鼠标点点点,环境一把梭。计划在jupyter notebook上做点库的尝试,完事还能给team交一份jupyter的报告,完美。配了清华源后,新建了一个3.6的环境,安装了notebook 5.0.0,启动的时候日志报错如下:
1 | 404 GET /nbextensions/jupyter-js-widgets/extension.js?v=20210403235813 |
如果这个时候尝试去执行code的话,会有以下的错误:
1 | RuntimeWarning: coroutine 'WebSocketHandler.get' was never awaited |

不过在vscode里同一个环境里倒是能正常进行交互,发生问题的主要是web上。

解决方法
说实话感觉还蛮奇怪的,因为我还什么都没动呢。只是conda install notebook怎么就启动不了了,google和issue递归查找看了一下。大概要走这么几个步骤。
手动enable nbextension
1 | 404 GET /nbextensions/jupyter-js-widgets/extension.js?v=20210403235813 |

在terminal里输入以下内容:
1 | conda install ipywidgets |
当手动enbale该widget,这个时候再次查看nbextension的状态,可以看到该extension的验证通过了。

这个时候你再启动notebook,会发现这个错误消失了。
调整tornado版本
1 | RuntimeWarning: coroutine 'WebSocketHandler.get' was never awaited |
参考issue,https://github.com/jupyter/notebook/issues/4437。notebook的kernal connetion基于tornado,tornado6.1似乎和这我手上这版的notebook有兼容问题,用conda list看了一眼,的确装的6.1的tornado,调整tornado到5.1.1似乎能解决问题。
1 | conda install "tornado<6" |
再启动notebook,继续报错

emmm,为什么不行,不过看上去似乎依然是tornado的问题,”异步框架”就是麻烦。再google一手。
继续降版本,降到4.5.3能解决问题。

小结
怪。依赖的版本一般不是应该先测试稳定,再发布吗?怎么notebook 5.0.0启动都搞出这么一堆幺蛾子出来。。。是清华源的问题?anaconda的问题?我对notebook也就当工具用用,没怎么详细去了解这东西,改天闲着无聊可以去翻翻release的历史看看。大概就这么流水账的一篇。如果有相似经历的朋友,希望这个能起到一点点的参考和帮助。