我为第一个单元格的输出中的每个单元格创建了 ipywidget 按钮。我想在单击按钮时运行单元格。
显示(Javascript('IPython.notebook.execute_cells_below()'))。这工作正常。但是当它尝试使用单元索引运行特定单元时,什么也没有发生。
有没有办法为每个单元格分配固定索引?
# cell 1
from IPython.display import Javascript, display
from ipywidgets import widgets
def run_all(ev):
display(Javascript('IPython.notebook.execute_cells_below()'))
#display(Javascript('IPython.notebook.execute_cells(3)'))
button = widgets.Button(description="Create next input")
button.on_click(run_all)
display(button)
#cell 2
print('hi from cell 2')
#cell 3
print('hi from cell 3')
我相信你的罪名是错误的。执行特定单元格时尝试此操作:
display(Javascript("Jupyter.notebook.execute_cell([cell_index])"))
这是因为您忘记将单元格索引号放在方括号内。正确的代码如下:
from IPython.display import Javascript, display
from ipywidgets import widgets
def run_all(ev):
# display(Javascript('IPython.notebook.execute_cells_below()'))
display(Javascript('IPython.notebook.execute_cells([3])'))
button = widgets.Button(description="Create next input")
button.on_click(run_all)
display(button)