如何 运行 Jupyter Notebook 或 JupyterLab 单元格中的单行或选定代码?

How to run a single line or selected code in a Jupyter Notebook or JupyterLab cell?

在 JupyterLab 和 Jupyter Notebook 中,您可以使用 ctrl + Enter:

执行单元格

代码:

print('line 1')
print('line 2')
print('line 3')

单元格和输出:

可是你怎么能运行line 2呢?或者甚至在没有 运行 整个单元格的情况下选择单元格内的行?当然,您可以只插入一个包含单行或多行选择的单元格,但这会很快变得非常麻烦和混乱。那么有更好的方法吗?

更新答案

自从我的第一个回答以来,JupyterLab 已经进行了一些更新(我现在在 1.1.4),并且有人说 JupyterLab 1.0 will eventually replace the classic Jupyter Notebook,这是我认为最好的现在就接近,未来更是如此:

在 JupyterLab 中,使用 Run > Run selected line or highlighted text 和分配的键盘快捷键到控制台中的 运行 代码。

这是使用键盘快捷键 运行 逐行打印三个语句时的样子:

Settings > Advanced Settings > Keyboard shortcuts 中设置快捷方式的方法如下:

这是您需要在 Settings > Keyboard Shortcuts > User preferences > 下添加的内容:

{
    // List of Keyboard Shortcuts
    "shortcuts": [
        {
            "command": "notebook:run-in-console",
            "keys": [
                "F9"
            ],
            "selector": ".jp-Notebook.jp-mod-editMode"
        },
    ]
}

快捷方式甚至会显示在菜单中。我选择使用 F9


旧版本的原始答案:


简答:

Jupyter 笔记本:

  1. qtconsole
  2. 便签本

JupyterLab:

  1. qtconsole
  2. Run > Run Selected Text or Current Line in Console,可选择使用键盘快捷键

查看下面的详细信息,以及答案末尾编辑中的一些特殊情况


详情:

Jupyter 笔记本选项 1: qtconsole

可以说,插入新单元格最灵活的替代方法是使用魔术功能

打开IPython控制台
%qtconsole

您可以使用更花哨的控制台

%qtconsole --style vim

在这个控制台中执行的行的结果也将可用于 Jupyter Notebook,因为它仍然是 运行ning 的同一个内核。一个缺点是您必须将所需的行复制并粘贴或键入到控制台中。

[

Jupyter 笔记本选项 2: Scratchpad Notebook Extension

安装成功后,您可以使用 ctrl + B:

启动便签本

JupyterLab 选项 1: %qtconsole

工作方式与笔记本相同

JupyterLab 选项 2: Run > Run Selected Text or Current Line in Console

与 qtconsole 类似的选项,但可以说更优雅,已内置于较新版本的 JupyterLab。现在您可以将标记放在一行上,或突出显示 select 离子,然后使用菜单选项 Run > Run Selected Text or Current Line in Console:

您仍然会在 IPython 控制台中获得结果,但您不必使用 %qtconsole 添加额外的行,并且 运行 更容易单元格内的 select 行离子:

您可以通过指定键盘快捷键让事情变得更简单 菜单选项 Run > Run Selected Text or Current Line in Console 像这样:

1 - 转到 Settings 和 select Advanced Settings editor:

2 -Keyboard shortcuts tab 下,执行 ctrl+F 搜索 run-in-console 以找到以下部分:

// [missing schema title]
    // [missing schema description]
    "notebook:run-in-console": {
      "command": "notebook:run-in-console",
      "keys": [
        ""
      ],
      "selector": ".jp-Notebook.jp-mod-editMode",
      "title": "Run In Console",
      "category": "Notebook Cell Operations"
    }

3 - 复制该部分并将其粘贴到 User Overrides 下,然后在 keys 下方输入您想要的快捷方式,如下所示:

[...]
"keys": [
  "F9"
],
[...]

4 -点击File下的Save All

5 - 如果过程顺利,您会看到您的菜单选项已更改:

6 - 您可能需要重新启动 JupyterLab,但现在您可以轻松 运行 单行或 select 行与您想要的快捷方式.

##编辑:特殊情况

您的首选方法将取决于相关行输出的性质。下面是 plotly 的示例。随着时间的推移可能会添加更多示例。

1. - 剧情

plotly 图形不会直接显示在 Jupyter QtConsole 中(可能与 this 有关),但 Jupyter Notebook 中的 Scratchpad 和 Jupyterlab 中使用 Run > Run Selected Text or Current Line in Console 的集成控制台都会处理 plotly数字刚刚好。

片段:

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
init_notebook_mode(connected=True)

trace0 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[10, 15, 13, 17]
)

fig = go.Figure([trace0])
iplot(fig)

1.1 - 使用便签本

1.2 - 使用突出显示的行和键盘快捷键与 JupyterLab 控制台进行绘图: