【问题标题】:VSCode: How to export a python file that was imported from a Jupyter Notebook back to Jupyter format?VSCode:如何将从 Jupyter Notebook 导入的 python 文件导出回 Jupyter 格式?
【发布时间】:2019-04-21 22:05:23
【问题描述】:

可能是一个愚蠢的问题,但我找不到。 Visual Studio Code 编辑器有一个非常好的方法来work with Jupyter Notebooks。我可以直接在 vscode 中编辑单元格并运行它们。现在使用版本控制会很容易。

但我找不到将其转换回笔记本的方法!如何从生成的 python 文件中生成一个 notebook?

我知道笔记本中没有输出单元格。

【问题讨论】:

    标签: visual-studio-code jupyter-notebook vscode-python


    【解决方案1】:

    在具有笔记本输出的交互式 Python 窗口中有一个选项:

    这真的很酷,现在您可以在 Python 文件中工作,并且与您的版本配置系统 (Git) 有一个非常好的界面。

    是的,这是一个愚蠢的问题:-)

    【讨论】:

    【解决方案2】:

    Jupytext 库支持 VSCode-Python 使用的基于百分比的单元格格式,以及其他基于文本的笔记本交换格式:

    https://github.com/mwouts/jupytext

    【讨论】:

    • 如果您使用 VS Code Scientific Python 模式运行代码单元(或 Atom-Hydrogen),Jupytext 将毫无用处。但是 Jupytext 可以是一个不错的替代方案:在 VS Code 中编写代码,但在 Jupytext 中运行代码单元。最近 VS Code 和 Atom 在 Windows 上都有严重的错误,所以有第三种替代方案很好。
    • jupytext 自述文件中的@PeterZagubisalo:“它还可以将这些文档转换为 Jupyter Notebooks,让您可以双向同步内容。”
    【解决方案3】:

    如果您需要更好地控制如何完成到 ipynb 的转换(或者您需要有交叉引用),那么您可以尝试 Pandoctools。它可以将 VSCode *.py 文档导出为任何 Pandoc 输出格式或 Jupyter 笔记本。

    例如你可以create and register Jupyter 内核。例如可以命名为“nn”。这应该与您在 VSCode 中选择的内核相同(您可以通过路径选择它,但 VSCode 仍然使用已安装的内核规范)。然后将 hat 添加到 Python 文件中,将文档拆分为单元格,提供设置并设置 Markdown 单元格(注释元数据行将导出为 pdf 而不是 ipynb;我建议在 nteract 原生应用程序中打开 ipynb):

    """
    ---
    kernels-map:
      py: nn
    jupyter:
      kernelspec:
        display_name: nn
        language: python
        name: nn
    pandoctools:
      # out: "*.pdf"
      out: "*.ipynb"
    ...
    
    # Markdown section title 1
    
    Some **static** Markdown text.
    """
    
    
    # %% {echo=False}
    import IPython.display as ds
    import math
    import sugartex as stex
    
    
    # %% {markdown}
    """
    # Markdown section title 2
    
    The quick brown Fox jumps over the lazy dog.
    """
    
    
    # %%
    ds.Markdown(stex.pre(f'''
    
    Some **dynamic** Markdown text with SugarTeX formula: ˎα^˱{math.pi:1.3f}˲ˎ.
    It works because of the `Markdown` display option and `sugartex` Pandoc filter.
    Acually `stex.pre` is redundant here but it is needed when the text is imported
    or read from somewhere instead of being written in the same document.
    
    '''))
    

    然后通过 pandoctools 转换文件:将文件拖放到 pandoctools 快捷方式/可执行文件或“使用”pandoctools 可执行文件“打开”。

    另见:

    【讨论】:

      【解决方案4】:

      使用 jupytext 库:

      安装:

      pip install jupytext
      

      现在打开 CMD 或内部终端到您的 .py 文件所在的文件夹

      运行这个:

      jupytext --set-formats py:percent,ipynb filename.ipynb
      

      【讨论】:

        猜你喜欢
        • 2016-10-04
        • 2021-10-29
        • 2021-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多