Jupyter Notebook 以编程方式运行单元格

问题描述 投票:0回答:2

我为第一个单元格的输出中的每个单元格创建了 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')
python-3.x jupyter-notebook
2个回答
0
投票

我相信你的罪名是错误的。执行特定单元格时尝试此操作:

display(Javascript("Jupyter.notebook.execute_cell([cell_index])"))

0
投票

这是因为您忘记将单元格索引号放在方括号内。正确的代码如下:

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)
© www.soinside.com 2019 - 2024. All rights reserved.