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 database
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/jupyter_server/services/contents/filemanager.py", line 434, in save
        self.check_and_sign(nb, path)
      File "/usr/local/lib/python3.9/site-packages/jupyter_server/services/contents/manager.py", line 651, in check_and_sign
        self.notary.sign(nb)
      File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 462, in sign
        self.store.store_signature(signature, self.algorithm)
      File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 204, in store_signature
        if not self.check_signature(digest, algorithm):
      File "/usr/local/lib/python3.9/site-packages/nbformat/sign.py", line 239, in check_signature
        self.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/332614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

保姆版Vps安装灯塔(ARL)

因为灯塔的默认端口为5003,所以我们在安装之前就在防火墙里把我们的5003端口打开 打开端口步骤如下: 1.我们打开控制面板,在控制面板里点击 系统和安全 。如下图: 2.接着点击 Windows Defender防火墙,如下图: 3.再…

IPhone、IPad、安卓手机、平板以及鸿蒙系统使用惠普无线打印教程

演示机型:惠普M281fdw,测试可行机型:惠普M277,惠普M452、惠普M283 点击右上角图标。 点击WI-FI Direct 开,(如果WI-FI Direct关闭,请打开!) 记录打印机的wifi名称(SSID)和密码。 打开IPhone、I…

kotlin Kmp多平台模板生成

地址: Kotlin Multiplatform Wizard | JetBrains 可生成kotlin多个平台模板 https://terrakok.github.io/Compose-Multiplatform-Wizard/

冻结Prompt微调LM: PET(b) LM-BFF

PET-TC(B) paper b: 2020.9 It’s not just size that matters: Small language models are also few-shot learners. Prompt: 多字完形填空式人工Prompt Task:Text Classification Model: Albert-xxlarge-v2 Take Away: 支持多字的完形填空Prompt&a…

vue中父组件异步传值,渲染问题

vue中父组件异步传值&#xff0c;渲染问题 父组件异步传值&#xff0c;子组件渲染不出来。有如下两种解决方法&#xff1a; 1、用v-if解决&#xff0c;当父组件有数据才渲染 <Child v-if"dataList && dataList.length > 0" :data-list"dataLis…

09 STM32 - PWM

9.1 PWM简介 脉冲宽度调制(Pulse Width Modulation,简称PWM)&#xff0c;是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点&#xff0c;就是对脉冲宽度的控制。 9.2 PWM波原理 如下图所示&#xff0c;使用定时器定时&#xff0c;从0开始&#x…

抽象类(没有对象)之引用对象失败之谜

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 欢迎&#x1f64f;点赞&#x1f5e3;️评论&#x1f4e5;收藏&#x1f493;关注 &#x1f496;衷心的希…

第十二章 Spring Cloud Alibaba Sentinel

文章目录 前言1、简介1.1、基本概念 2、Sentinel控制台3、Sentinel开发流程3.1、 app-api消费端工程引进依赖3.1.1、yml新加配置&#xff08;跟nacos同级&#xff09; 3.2、定义资源3.3、定义规则3.3.1、流量控制3.3.2、流控模式3.3.3、流控效果3.3.4、熔断降级3.3.5、通过Naco…

基于springboot+vue的社区团购系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

腾讯云MPS为出海媒体企业助力

在如今互联网发达的时代&#xff0c;一个视频通过网络发布即可供给全球用户进行观看。其中视频媒体企业便其中的领头先锋&#xff0c;为了让创作者们以及全球各大用户的视频进行快速推广&#xff0c;出海则是不二之选。但是因为各地区域的不同&#xff0c;带宽的不同与网络的限…

【EI会议征稿通知】第四届工业制造与结构材料国际学术会议(IMSM 2024)

第四届工业制造与结构材料国际学术会议&#xff08;IMSM 2024&#xff09; 2024 4th International Conference on Industrial Manufacturing and Structural Materials&#xff08;IMSM 2024&#xff09; 第四届工业制造与结构材料国际学术会议&#xff08;IMSM 2024&#x…

WordPress怎么禁用文章和页面古腾堡块编辑器?如何恢复经典小工具?

现在下载WordPress最新版来搭建网站&#xff0c;默认的文章和页面编辑器&#xff0c;以及小工具都是使用古腾堡编辑器&#xff08;Gutenberg块编辑器&#xff09;。虽然有很多站长说这个编辑器很好用&#xff0c;但是仍然有很多站长用不习惯&#xff0c;觉得操作太难了&#xf…

Spring Boot自动配置原理

1.SpringBootApplication注解 springboot是基于spring的新型的轻量级框架&#xff0c;最厉害的地方当属**自动配置。**那我们就可以根据启动流程和相关原理来看看&#xff0c;如何实现传奇的自动配置 SpringBootApplication//标注在某个类上&#xff0c;表示这个类是SpringBo…

微软与沃达丰签订10年合作,提供Copilot等生成式AI服务

1月16日&#xff0c;微软在官网宣布&#xff0c;与全球最大电信公司之一沃达丰&#xff08;Vodafone&#xff09;签订10年合作协议&#xff0c;将为3亿多企业、消费者提供生成式AI、云和数字服务等。 通过此次合作&#xff0c;沃达丰将利用微软的Copilot等生成式AI来改变客户、…

基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

StarRocks 生成列:百倍提速半结构化数据分析

半结构化分析主要是指对 MAP&#xff0c;STRUCT&#xff0c;JSON&#xff0c;ARRAY 等复杂数据类型的查询分析。这些数据类型表达能力强&#xff0c;因此被广泛应用到 OLAP 分析的各种场景中&#xff0c;但由于其实现的复杂性&#xff0c;对这些复杂类型分析将会比一般简单类型…

align-item 和 align-content

align-item 和 align-content flex 布局中的 align-items 和 align-content 属性都用于垂直对齐 flex 容器内的项目&#xff0c;但它们适用于不同的情况&#xff1a; align-items: 这个属性用于在交叉轴上对齐单行内的 flex 项目。当你有一个 flex 容器&#xff0c;并且里面的…

【开源】基于JAVA的软件学院思政案例库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理员2.2 普通教师 三、系统展示四、核心代码4.1 查询思政案例4.2 审核思政案例4.3 查询思政课程4.4 思政案例点赞4.5 新增思政案例评语 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的软件学…

第16章_网络编程拓展练习(TCP编程,UDP编程)

文章目录 第16章_网络编程拓展练习TCP编程1、学生与老师交互2、查询单词3、拓展&#xff1a;查询单词4、图片上传5、拓展&#xff1a;图片上传6、多个客户端上传文件7、群聊 UDP编程8、群发消息 第16章_网络编程拓展练习 TCP编程 1、学生与老师交互 案例&#xff1a;客户端模…

回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SSA-BP麻雀算法优化BP神经网络多变量回归预测&#xff1b; 2.数据…