VSCode: Как экспортировать файл Python, который был импортирован из ноутбука Jupyter обратно в формат Jupyter?

Возможно, глупый вопрос, но я не смог его найти. Редактор кода Visual Studio имеет действительно хороший способ работы с ноутбуками Jupyter. Я могу редактировать ячейки прямо в vscode и запускать их. Теперь было бы легко работать с контролем версий.

Но я не смог найти способ превратить его обратно в ноутбук! Как сгенерировать блокнот обратно из сгенерированного файла Python?

Я понимаю, что в ноутбуке не будет выходных ячеек.

4 ответа

Решение

В интерактивном окне Python есть опция для вывода в блокноте:

Опция экспорта в интерактивном окне

Это действительно круто, теперь вы можете работать в файле Python и иметь действительно хороший интерфейс с вашей системой конфигурации версий (Git).

Да, это был глупый вопрос:-)

Используйте библиотеку jupytext:

Установить:

      pip install jupytext

Теперь откройте CMD или внутренний терминал в папке с вашим .py файлом.

Запустите это:

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

Если вам нужен больший контроль над тем, как выполняется преобразование в ipynb (или вам нужны перекрестные ссылки), вы можете попробовать Pandoctools. Он может экспортировать документы VSCode *.py в любой формат вывода Pandoc или в блокнот Jupyter.

Например, вы можете создать и зарегистрировать ядро Jupyter. Например, это может быть названо "nn". Это должно быть то же ядро, которое вы выбрали в VSCode (там вы выбираете его по пути, но VSCode все еще использует спецификации установленных ядер под капотом). Затем добавьте шляпу в файл Python, разделите документ по ячейкам, предоставьте настройки и установите ячейки Markdown (строка метаданных с комментариями экспортируется в pdf вместо ipynb; я рекомендую открыть ipynb в собственном приложении nteract):

"""
---
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.

Также см:

Библиотека Jupytext поддерживает формат ячеек на основе процентов, используемый VSCode-Python, а также другие текстовые форматы обмена записными книжками:

https://github.com/mwouts/jupytext

Другие вопросы по тегам