Я пытаюсь использовать nbformat для создания простой записной книжки с одним виджетом. Я могу выполнить ячейку кода, используя ExecutePreprocessor , как показано ниже, но это приводит к выводу текста; виджет не отображается.
Конечно, тетрадь можно открыть в Jupyter Notebook или Lab, тогда все ячейки будут запущены. Тем не менее, я создаю множество записных книжек, и я хотел бы избежать этого шага, если это возможно.
Как можно изменить этот код для отображения виджета?
import nbformat as nbf
from nbconvert.preprocessors import ExecutePreprocessor
code = '''\
import ipywidgets as widgets
from IPython.display import display
w = widgets.RadioButtons(options=[('a',0), ('b',1), ('c',2)], description = 'hello', disabled=False)
display(w)
'''
nb = nbf.v4.new_notebook()
cell = nbf.v4.new_code_cell(code)
nb['cells'] = [cell]
ep = ExecutePreprocessor(timeout=600, kernel_name='python3')
ep.preprocess(nb, {})
with open('test.ipynb', 'w') as f:
nbf.write(nb, f)
Фактический вывод :
(только текст; виджет не отображается)
RadioButtons(description='hello', options=(('a', 0), ('b', 1), ('c', 2)), value=0)
Требуемый вывод :
(отображается виджет)