Выполнение блокнота Jupyter в командной строке - PullRequest
0 голосов
/ 19 февраля 2019

Я хотел бы программно запустить ячейку блокнота jupyter, содержащую операторы импорта, и использовать пакеты, импортированные после открытия блокнота, а не просто преобразовать вывод в новый блокнот ipython .

В настоящее времяЯ использую nbconvert для запуска предварительно созданной записной книжки Jupyter.Для выполнения записной книжки необходимо выполнить следующие шаги:

jupyter nbconvert --execute --inplace test.ipynb

Код для создания новой записной книжки -

<code>import nbformat as nbf
nb = nbf.v4.new_notebook()
nb['cells'] = [nbf.v4.new_markdown_cell(text),nbf.v4.new_code_cell(code,metadata={'editable':False,'deletable':False}) ]
nbf.write(nb, 'test.ipynb')

Блок кода в записной книжкеячейка содержит -

import pandas as pd
import numpy as np
import matplotlib as plt
%pylab inline
hist(normal(size=2000), bins=50)

Выходная ячейка отображает гистограмму, как и ожидалось.Однако я не могу использовать пакеты, импортированные после открытия записной книжки.Есть ли способ выполнить записную книжку в командной строке, а затем использовать импортированные пакеты после открытия записной книжки, не запуская ячейку вручную?

1 Ответ

0 голосов
/ 20 февраля 2019

Мне удалось решить эту проблему, установив расширение jupyter - [Расширение ноутбука Jupyter] [1] https://github.com/ipython-contrib/jupyter_contrib_nbextensions.

После включения расширения init_cell, как указано в документе по приведенной выше ссылке,Я добавил метаданные тега "init_cell": True nbf.v4.new_code_cell(code,metadata={'editable':False,'deletable':False,'trusted':True,'init_cell':True}) в коде создания блокнота для ячейки, которую я хочу установить в качестве инициализированной ячейки.

Кроме того, мне пришлось выполнить строку jupyter trust test.ipynb в командестрока, чтобы убедиться, что записная книжка установлена ​​в качестве доверенной для блока ячеек, работающего при нагрузке на ноутбук.

Это приводит к выполнению инициализированного блока ячеек кода после загрузки записной книжки, что позволяет мне использовать импортированные пакеты ипеременные, если они есть, без необходимости вручную запускать ячейку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...