Chrome OS系统下pip安装的Jupyter Notebook启动失败问题咨询
问题根因
该报错由版本兼容性问题导致:
- 你安装的notebook 6.4.6版本在初始化阶段会强制调用
nest_asyncio.apply()为异步事件循环打补丁,该方法默认会尝试获取当前线程已经存在的事件循环对象 - Chrome OS搭载的Crostini Linux容器环境中,Python 3.7初始运行阶段不会默认创建asyncio事件循环,导致
asyncio.get_event_loop()返回None,触发nest_asyncio的类型校验报错
可执行的修复方案
- 方案1:降级notebook到无该补丁逻辑的6.4.5版本,执行命令:
pip install notebook==6.4.5 - 方案2:升级nest_asyncio到1.5.0及以上版本,高版本已兼容无现有事件循环的场景,会自动创建新循环,执行命令:
pip install --upgrade nest_asyncio - 方案3:若需保留当前所有依赖版本,可手动创建事件循环后启动notebook,执行命令:
python3 -c "import asyncio; asyncio.set_event_loop(asyncio.new_event_loop()); from notebook.notebookapp import main; main()"
验证步骤
修复完成后执行jupyter notebook命令启动服务,无上述ValueError报错即为修复成功,可正常使用Jupyter Notebook功能。
内容的提问来源于stack exchange,提问作者Bojan Vučinić
相关产品推荐
相关产品推荐

