在 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 中使用 plotly python 绘制具有不等热图的交互式树状图