文档和内核#

在 Jupyter 架构中,内核是服务器启动的独立进程,用于在不同的编程语言和环境中运行您的代码。JupyterLab 允许您将任何打开的文本文件连接到代码控制台和内核。这意味着您可以轻松地以交互方式从文本文件中运行代码。

右键单击文档并选择“为编辑器创建控制台”

代码控制台打开后,发送单行代码或选择一段代码,然后按 Shift Enter 将其发送到代码控制台

在 Markdown 文档中,Shift Enter 会自动检测光标是否在代码块内,如果没有选择,则运行整个块

文本文件编辑器中的任何文本文件(Markdown、Python、R、LaTeX、C++ 等)都可以通过这种方式连接到代码控制台和内核。

子 Shell 控制台#

对于支持子 shell 的内核(例如带有 ipykernel 7.0.0+ 的 Python 内核),您可以创建子 shell 控制台以与主笔记本执行并发运行代码。

创建子 Shell 控制台

  1. 命令面板:按 Ctrl+Shift+C(Mac 上为 Cmd+Shift+C)并搜索“New Subshell Console for Notebook”(为笔记本创建新的子 shell 控制台)

  2. 上下文菜单:在笔记本中右键单击并选择“New Subshell Console for Notebook”(为笔记本创建新的子 shell 控制台)(仅当内核支持子 shell 时才显示)

验证子 Shell 功能

在 Python 内核中使用 %subshell 魔术命令

%subshell

这将显示

  • 子 shell ID:主 shell 为 None,子 shell 为唯一 ID

  • 子 shell 列表:活动子 shell ID 数组

实际示例

  1. 在您的主笔记本中,启动一个长时间运行的计算

    import time
    for i in range(100):
        print(f"Main shell: {i}")
        time.sleep(1)
    
  2. 在它运行的同时,创建一个子 shell 控制台并执行

    print("This runs concurrently!")
    %subshell  # Shows this subshell's ID
    
  3. 子 shell 立即执行,无需等待主 shell 完成。

通信设置

通过“设置”→“高级设置”→“内核”配置小部件通信如何使用子 shell

  • disabled:通信不使用子 shell

  • perCommTarget:每个通信目标一个子 shell(默认)

  • perComm:每个通信一个子 shell(可以创建多个子 shell)