Jupyter-Notebook无法创建ipynb文件

2024-01-19 10:04

本文主要是介绍Jupyter-Notebook无法创建ipynb文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 概述
    • 排查问题
    • 恢复方法
    • 参考资料

概述

用户反馈在 Notebook 上无法创建 ipynb 文件,并且会返回以下的错误。

报错的信息是: Unexpected error while saving file: Untitled5.ipynb attempt to write a readonly database
在这里插入图片描述

排查问题

这个是一个比较新的问题,因为团队之前也没有人遇见过,不过通过报错信息,很容易定位到这个 issue Creating Jupyter Notebook Failed: error to write a readonly database #5321。初步看,我们这里遇到的问题跟 issue 上是一样的。

虽然没有仔细看过 Jupyterhub 和 Jupyterlab 的代码,但是我们可以根据一些报错信息来进行进一步的排查。

[I 2024-01-18 09:48:31.909 SingleUserLabApp handlers:172] Creating new notebook in
[E 2024-01-18 09:48:31.910 SingleUserLabApp filemanager:449] Error while saving file: Untitled5.ipynb attempt to write a readonly databaseTraceback (most recent call last):File "/usr/local/lib/python3.9/site-packages/jupyter_server/services/contents/filemanager.py", line 434, in saveself.check_and_sign(nb, path)File "/usr/local/lib/python3.9/site-packages/jupyter_server/services/contents/manager.py", line 651, in check_and_signself.notary.sign(nb)File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 462, in signself.store.store_signature(signature, self.algorithm)File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 204, in store_signatureif not self.check_signature(digest, algorithm):File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 239, in check_signatureself.db.execute(sqlite3.OperationalError: attempt to write a readonly database
[W 2024-01-18 09:48:31.910 SingleUserLabApp web:1796] 500 POST /user/oscar01.liu/api/contents?1705542511901 (10.80.50.125): Unexpected error while saving file: Untitled5.ipynb attempt to write a readonly database
[W 2024-01-18 09:48:31.910 SingleUserLabApp handlers:649] Unexpected error while saving file: Untitled5.ipynb attempt to write a readonly database
[E 2024-01-18 09:48:31.911 SingleUserLabApp log:178] {"Cookie": "jupyterhub-user-oscar01.liu=[secret]; _xsrf=[secret]; jupyterhub-user-oscar01.liu-oauth-state=[secret]","Accept-Language": "zh-CN,zh;q=0.9","Accept-Encoding": "gzip, deflate","Referer": "http://gd17-llm-002-jupyterhub.xxx.com/user/oscar01.liu/lab/workspaces/auto-P","Origin": "http://gd17-llm-002-jupyterhub.xxx.com","Accept": "*/*","Content-Type": "text/plain;charset=UTF-8","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","Authorization": "token [secret]","X-Xsrftoken": "2|b9010b04|67edc801549f9be14554782ddb629233|1703062619","Content-Length": "29","X-Scheme": "http","X-Forwarded-Proto": "http,http","X-Forwarded-Port": "80,80","X-Forwarded-Host": "gd17-llm-002-jupyterhub.xxx.com","X-Forwarded-For": "10.80.50.125,10.122.196.115","X-Real-Ip": "10.80.50.125","X-Request-Id": "e6b76c0d4424e0f93a90fd0b10fc473b","Host": "gd17-llm-002-jupyterhub.xxx.com","Connection": "close"}

当尝试创建 ipynb 文件的时候,Notebook 的容器会打出报错的日志,从日志上看,感觉就是创建 ipynb 的时候,Notebook 会有读写数据库这样的操作,结合 issue 和用户的行为,大概可以判断,是因为用户动了 $HOME/.local/share/jupyter 目录下的一些配置文件,而这个目录内,有一个 sqlite3 实现的内存数据库,会记录一些本地 Notebook 的信息,这个文件就是 nbsignatures.db,如下图。

在这里插入图片描述

我们可以通过 python 来打开这 db 文件,查看一下,具体有什么信息在里面,具体的代码如下。

import sqlite3# 连接到 SQLite 数据库文件
conn = sqlite3.connect('$HOME/.local/share/jupyter/nbsignatures.db')# 创建一个 cursor
cursor = conn.cursor()# 查询 nbsignatures 表的所有数据
print("Data in nbsignatures table:")
cursor.execute("SELECT * FROM nbsignatures;")
for row in cursor.fetchall():print(row)# 关闭 cursor 和连接
cursor.close()
conn.close()

在这里插入图片描述

恢复方法

恢复的手段,要么是让用户把相关的文件和文件目录恢复,如果实在无法找回,最好的办法就是重启一下 Notebook 的容器了。

参考资料

  1. Creating Jupyter Notebook Failed: error to write a readonly database #5321

这篇关于Jupyter-Notebook无法创建ipynb文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/622065

相关文章

Python的pip在命令行无法使用问题的解决方法

《Python的pip在命令行无法使用问题的解决方法》PIP是通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Pyt... 目录前言一. pip是什么?二. 为什么无法使用?1. 当我们在命令行输入指令并回车时,一般主要是出现以

Java 如何创建和使用ExecutorService

《Java如何创建和使用ExecutorService》ExecutorService是Java中用来管理和执行多线程任务的一种高级工具,可以有效地管理线程的生命周期和任务的执行过程,特别是在需要处... 目录一、什么是ExecutorService?二、ExecutorService的核心功能三、如何创建

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.