35

在 JupyterLab 和 Jupyter Notebook 中,您可以使用以下命令执行单元ctrl + Enter

代码:

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

单元格和输出:

单元格和输出

但是你怎么能 line 2跑呢?或者甚至在一个单元格内选择行而不运行整个单元格?当然,您可以只插入一个带有单行或多行选择的单元格,但这很快就会变得非常麻烦和混乱。那么有没有更好的方法来做到这一点?

4

1 回答 1

43

更新的答案

由于自从我的第一个答案(我现在开始1.1.4)以来,JupyterLab 已经进行了一些更新,并且据说JupyterLab 1.0 最终将取代经典的 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. 便笺

Jupyter实验室:

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

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


细节:

Jupyter 笔记本选项 1: qtconsole

可以说插入新单元最灵活的替代方法是使用魔法函数打开 IPython 控制台

%qtconsole

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

%qtconsole --style vim

在此控制台中执行的行的结果也将提供给 Jupyter Notebook,因为它仍然是正在运行的同一个内核。一个缺点是您必须在控制台中复制和粘贴或键入所需的行。

[qtconsole1

Jupyter Notebook 选项 2: Scratchpad 笔记本扩展

安装成功后,您可以使用以下命令启动 Scratchpad ctrl + B

在此处输入图像描述

JupyterLab 选项 1: %qtconsole

工作方式与笔记本相同

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

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

在此处输入图像描述

您仍将在 IPython 控制台中获得结果,但您不必添加额外的行,%qtconsole并且在单元格中运行选择的行要容易得多:

在此处输入图像描述

您可以通过为菜单选项分配键盘快捷键来使事情变得更容易,Run > Run Selected Text or Current Line in Console如下所示:

1 -转到Settings并选择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 -单击Save All下方File

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

在此处输入图像描述

6 -您可能需要重新启动 JupyterLab,但现在您可以使用所需的快捷方式轻松运行单行或选择行。

##EDIT:特殊情况

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

1. - 阴谋

情节图不会直接显示在 Jupyter QtConsole 中(可能与相关),但 Jupyter Notebook 中的 Scratchpad 和 Jupyterlab 中的集成控制台都Run > Run Selected Text or Current Line in Console可以很好地处理情节图。

片段:

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 控制台配合使用:

在此处输入图像描述

于 2019-06-05T12:51:48.557 回答