【问题标题】:How to save changes in read-only Jupyter Notebook如何在只读 Jupyter Notebook 中保存更改
【发布时间】:2017-11-21 17:07:18
【问题描述】:

我打开了一个 python Jupyter 笔记本,但没有注意到它处于只读、不可信模式。现在如何保存我的更改?

我尝试过但没有帮助的事情:

  • 文件 -> 制作副本
  • 文件 -> 保存和检查点
  • 文件 -> 下载为
  • 文件 -> 信任笔记本

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    解决此问题的一个技巧:

    1. 选择只读笔记本中的所有单元格(或您需要的单元格)。您可以通过单击第一个单元格,然后按住 shift 键并单击最后一个单元格来选择所有单元格。
    2. 使用 CTRL+C 复制所有单元格(如果您使用的是 MAC,则使用 COMMAND+C)
    3. 创建一个新的 jupyter 笔记本页面
    4. 按两次 CTRL+V(如果您使用的是 MAC,请按 COMMAND+V)两次
    5. 保存您的新笔记本

    希望这个 hack 有所帮助

    【讨论】:

    • 这种方法对我不起作用。可能较新版本的jypyter 正在限制这种技术。我在下面发布了另一种方法。
    【解决方案2】:

    这是一个更具技术性的答案,它提供了一个可以从命令行或以编程方式使用的服务器端解决方案。

    https://jupyter-notebook.readthedocs.io/en/latest/notebook.html#introduction

    Trusting Notebooks 防止不受信任的代码在用户的 代表笔记本打开时,我们存储每个受信任的签名 笔记本。笔记本服务器验证此签名时,笔记本 被打开。如果没有找到匹配的签名,Javascript 和 HTML 输出将不会显示,直到它们被重新生成 重新执行单元格。

    您自己完全执行的任何笔记本都将被考虑 受信任,其 HTML 和 Javascript 输出将在加载时显示。

    如果您需要在不重新执行的情况下查看 HTML 或 Javascript 输出,并且 你确定笔记本没有恶意,你可以告诉 Jupyter 在命令行中信任它:

    $ jupyter trust mynotebook.ipynb 
    

    有关信任机制的更多详细信息,请参阅笔记本文档中的安全性。

    【讨论】:

    • 这是一个很好的解决方案,可以找到问题的根源并以干净的方式解决它
    【解决方案3】:

    here 所述,您可以轻松运行以下命令(它也解决了我的问题):

    sudo chmod 777 <notebook_file_name>
    

    【讨论】:

      【解决方案4】:
      1. 在文本编辑器中将笔记本作为文本文件打开。
      2. 您应该找到类似JSON 的结构
      3. "metadata" 下将"editable": false, 更改为"editable": true,

      【讨论】:

        【解决方案5】:

        我同意上面的第一个答案,但您必须再添加一个步骤(下面的第 4 步),以便复制的所有单元格不会粘贴到单个单元格中。

        1) Select all cells (or cells that you need) in your read-only notebook. You can select all cells by clicking on the first cell and then shift+clicking the last cell.
        2) Copy all cells using CTRL+C (COMMAND+C if you are using MAC)
        3) Create a new jupyter notebook page
        
        4) CLICK IN THE MARGIN OF THE NEW CELL (***to close it for editing***), then...
        
        5) Click CTRL+V (COMMAND+V if you are using MAC) 
        6) Save your new notebook
        

        默认情况下,Jupyter 将光标插入到第一个单元格中,这会将其打开以进行编辑。

        为避免将所有内容粘贴到打开以进行编辑的单元格中,您必须将其关闭以进行编辑。

        【讨论】:

          【解决方案6】:

          您可以导航到以下选项卡 - 查看 --> 单元格工具栏 --> 编辑元数据

          现在,所有单元格都将具有“编辑元数据”,单击它并将“可编辑”设置为“真”或删除该 json 条目。 单元格现在可以编辑了:)

          注意:您可能必须为要编辑的笔记本中的每个单元格执行此操作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-03-15
            • 2018-06-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-03-24
            • 2023-03-12
            相关资源
            最近更新 更多