【jupyter notebook】jupyter notebook无法打开/.ipynb文件也无法打开也无法新建【sqlite3. OperationalError: database is locked】

jupyter notebook 无法打开.ipynb文件,也无法新建.ipynb文件,报错为【sqlite3. OperationalError: database is locked】

排查问题。

先关闭这个notebook,再用terminal重新打开一个新的notebook,查看terminal的印屏traceback,发现最近的相关文件路径是…xx/nbformat/sign.py文件。


这个报错之前,就出现过notebook卡顿,逐渐打不开的问题,且报错 【OsError: Too many open files】
顺着这个路子,先是ulimit查看open files -n的数值是1024,可是改了2048以后又自动恢复了默认值。
遂重启jupyter notebook试试,发现可以打开交互页面了,但打不开文件,而且报了一个未知错误???
所以,采用重启方案或者扩大文件句柄数都没解决问题。


这时,打开文件时就出现新报错【sqlite3, operationaleeror: database is locked】
翻遍所有中文博客,都没找到解决方案,遂考虑重装,然鹅jupyter无论如何也卸载不干净,只对jupyter notebook简单重装了一下,也没有解决问题。


【重点】

于是开始尝试英文检索问题,终于!在github的jupyter项目下的issue中找到了同样的问题……o(╥﹏╥)o
【贴个地址:https://github.com/jupyter/nbformat/issues/52
【jupyter-notebook的doc文档:https://jupyter-notebook.readthedocs.io/en/latest/config.html
根据这个帖子,总体来说,这个问题是基于安装在NFS上的jupyter notebook的,看下来发现是和签名文件有关(nbsignatures.db,具体是什么我也不清楚,看起来像是一个存储了notebook签名的sqlite的文件)。此时,有人建议移除这个历史文件,于是有人把文件重命名了但也米有用。
最后,找到一位的建议对我的问题起作用了:就是更改你的.jupyter/jupyter_notebook_config.py文件(就是安装jupyter时的那个配置文件)。


【具体解决步骤】

进入隐藏文件 .jupyter 找到 jupyter_notebook_config.py文件;

文件里继续找,找到一行 c.NotebookNotary.db_file=''

可以读到注释写到,这里就是存储notebook签名文件的地方,默认值'',可以使用':memory:'来关闭sqlite对文件系统的写操作。
于是,

vi config //进行文件编辑
c.NotebookNotary.db_file=':memory:' //然后:wq保存退出

之后,重启notebook

jupyter notebook

打开页面,成功打开ipynb文件,恢复正常。

最后关闭临时的notebook,重新打开一个后台运行的notebook。

nohup jupyter notebook &

以上。

问题解决。

猜你喜欢

转载自www.cnblogs.com/anno-ymy/p/12534305.html