【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 &

 

以上。

問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM