在 Jupyter Notebook 环境中,交互式命令行 shell 在概念上适合应用程序、内核和文档的哪个位置?

Posted

技术标签:

【中文标题】在 Jupyter Notebook 环境中,交互式命令行 shell 在概念上适合应用程序、内核和文档的哪个位置?【英文标题】:In Jupyter Notebook environment, where is the interactive command-line shell fit conceptually within the app, kernel, and document? 【发布时间】:2021-02-20 03:30:55 【问题描述】:

我的理解是内核执行代码,而 CLI 是允许用户访问内核的 GUI。据说 Jupyter Notebook 具有增强的 REPL。 我试图从概念上理解增强的交互式外壳在构成 Jupyter Notebook 环境的三个组件中的位置:网络应用程序、内核、笔记本文档。

来自docs:Jupyter Notebook 结合了三个组件:

笔记本网络应用程序:一个交互式网络应用程序,用于以交互方式编写和运行代码以及创作笔记本文档。

内核:由笔记本网络应用程序启动的单独进程,以给定语言运行用户代码并将输出返回到笔记本网络应用程序。内核还处理诸如交互式小部件的计算、选项卡完成和内省之类的事情。

Notebook 文档:自包含文档,其中包含 Notebook Web 应用程序中可见的所有内容的表示,包括计算的输入和输出、叙述性文本、方程式、图像和对象的富媒体表示。每个笔记本文档都有自己的内核。

听起来 Jupyter Notebook 的 Python 内核是 IPython,它也被描述为内核和外壳。

来自Wikipedia: IPython 继续作为 Python 外壳和 Jupyter 内核存在,而 IPython 的 notebook 和其他与语言无关的部分则以 Jupyter 名称移动。

我也想知道下面的 kernel-shell-app 图是否可以作为 kernel-Notebook 文档-notebook wed 应用程序应用到 Jupyter Notebook 环境中。 Source

【问题讨论】:

CLI ≠ GUI!! CLI = 命令行解释器; GUI = 图形用户界面。两者都是用户界面,但性质不同:根据定义,CLI 是图形的。所以可能是你困惑的开始。现在,您确实可以在 Jupyter 笔记本(GUI)中键入“命令行”,然后将内容传递给内核,然后返回结果并显示在您的笔记本中。所以你可能会考虑“命令行”在哪里被理解,以及它是如何传递的。 【参考方案1】:

REPL 通过内核进行交互,正如它所声明的那样

以给定语言运行用户代码并返回输出

对于你以后的镜像,OS内核并不等同于IPython内核的定义,从OS的角度来看,它本身就是一个应用程序

【讨论】:

以上是关于在 Jupyter Notebook 环境中,交互式命令行 shell 在概念上适合应用程序、内核和文档的哪个位置?的主要内容,如果未能解决你的问题,请参考以下文章

jupyter notebook中使用mpld3进行交互

在 jupyter notebook 中使用 plotly python 绘制具有不等热图的交互式树状图

Python 和 Matplotlib:在 Jupyter Notebook 中制作交互式 3D 绘图

jupyter notebook 安装教程

Jupyter Notebook 快速入门[转]

本地主机访问远程linux系统服务器上的jupyter notebook