目录
一、简介
1.Python
2.IPython
3.Jupyter
二、Jupyter Notebook
1.登录开发板
2.Notebook的使用
三、IPython
常用命令
登录开发板:http://192.168.2.99:9090 (密码:xilinx) http://192.168.2.99:9090/lab(登录lab)
编辑模式:按 Enter 键或使用鼠标单击单元格的编辑器区域
命令模式:按 Esc 或点击在单元格的编辑器区域之外区域
如果不想运行后在下方插入一个新单元格:Ctrl-Enter
一、简介这里对 Python、 Ipython、 Jupyter生态系统进行概述,从而更好的了解其中的关系。
1.PythonPython 是一种高级且开放源代码的通用编程语言,最初是由 Guido van Rossum 在 1980 年代后期构思的。系统管理员通常使用这种易于使用的语言作为胶水语言,将各种系统组件链接在一起。对于大型软件开发,它也是一种健壮的语言。Python 带有具有丰富的标准库,它涵盖了字符串处理、网络协议、 操作系统接口和许多其他领域。
2.IPythonIPython 是一个 Python 库,最初旨在改善 Python 提供的默认交互式控制台。在IPython 首次发布 10 年后的 2011 年,推出了 IPython Notebook。这个基于 Web 的 IPython 界面在独立的可共享 Web 文档中结合了代码、 文本、 数学表达式、 交互式图形、 图形界面和其他富媒体。该平台为交互式科学计算和数据分析提供了理想的通道。对于研究人员、 工程师、 数据科学家、 教师及其学生而言, IPython已经变得至关重要。
3.Jupyter2014 年, IPython 开发人员宣布了 Jupyter 项目,该计划旨在改善 Notebook 的实现并通过设计使其与语言无关。该项目的名称反映了 Notebook 支持的三种主要科学计算语言的重要性: Julia、 Python和 R。如今, Jupyter本身就是一个生态系统,它包含几个可选的Notebook接口(JupyterLab、JupyterHub、Voilà 等) 、 交互式可视化库以及与 Notebook 兼容的创作工具。
Jupyter Notebook 是基于 Web 的用于交互式计算的应用程序, 可应用于全过程计算(开发、文档编写、运行代码和展示结果), 用途包括数据清理和转换、 数值模拟、 统计建模、 机器学习等。 IPython 是一个功能强大的交互式 python shell,也是供 Jupyter notebook使用的一个 Jupyter 内核(IPython notebook) 。
二、Jupyter Notebook 1.登录开发板Jupyter Notebook 是一个开源的、基于 Web 的用于交互式计算的应用程序, 可应用于全过程计算:开发、文档编写、运行代码和展示结果。
Jupyter Notebook 结合了三个组件:
①Notebook Web 应用程序 一种交互式 Web 应用程序,用于交互地编写和运行代码以及编写 Notebook 文档
②Kernels
NotebookWeb 应用程序启动的单独进程,该进程以给定语言运行用户的代码,并将输出返回给 NotebookWeb 应用程序。 Kernels(内核)还处理诸如交互式小部件的计算, tab 补全之类的事情。
③Notebook 文档
包含 Notebook Web 应用程序中所有内容的表示形式, 即 Jupyter Notebook 中所有的说明文档、数学公式、交互计算、 图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。 这些文档是保存为后缀名为.ipynb 的 JSON 格式文件,不仅便于版本控制,也方便与他人共享。 此外,文档还可以导出为 HTML、LaTeX、 PDF 等格式。 每个 Notebook 文档都有其自己的 Kernels。
通过Jupyter Notebook访问开发板:在浏览器输入开发板IP
http://192.168.2.99:9090
密码为xilinx,然后点击右边的“Log in”按钮,进入 Jupyter Notebook 的主页面。
主界面Files选项卡下已经包含了一些文件和文件夹,这些文件是 Jupyter Notebook 服务器目录/home/xilinx/jupyter_notebooks 下的文件。
Files下的 getting_started 文件夹包含一些 Jupyter 入门的 Notebook。Running用来显示正在运行的 Notebook 和终端。
2.Notebook的使用进入Jupyter Notebook 主界面后,下面将介绍如何创建和运行 Notebook。
Notebook支持多种不同的编程语言,如Python、Julia、Go、Scala和R等。对于用户打开的每个Notebook,Web 应用程序都会启动运行该 Notebook 代码的内核(kernel)。每个内核支持相对应的编程语言。 对于 PYNQ而言, 默认的 Jupyter Notebook 内核IPython。
Notebook 包含交互会话的输入和输出以及代码和叙述性文本。 Notebook 中嵌入了由运行代码生成的丰富输出(包括 HTML、 图像、 视频和绘图),这使其成为完整且独立的计算记录文档。当在计算机上运行 Notebook Web 应用程序时, Notebook 文档只是本地文件系统上带有.ipynb 扩展名的文件。这使得可以使用熟悉的工作流程将 Notebook 文档组织到文件夹中并与他人共享。
创建Notebook:单击 Jupyter Notebook主界面右上角New按钮,然后从下拉列表中选择 Python3.
进入新创建的 notebook 界面,如下图所示,可以看到 notebook name(Untitled)、 菜单栏(Menu bar)、工具栏(Toolbar) 和一个空的代码单元格(Code cell) 。
①notebook name:显示在页面顶部的 Jupyter logo 旁边的名称反映了.ipynb 文件的名称。单击 notebook名称将弹出一个对话框,可以重命名该对话框。因此, 可以在浏览器中将 notebook 从“Untitled”重命名为想要的名称。
②Menu bar:菜单栏显示可用于实现 notebook 不同功能方式的不同选项。
③Toolbar:通过单击图标,工具栏提供了一种在 notebook 中执行最常用操作的快捷方法
④Code cell:代码单元格, 默认的单元格类型。
Notebook 由一系列单元格组成, 单元格可用来输入代码和文本,可以通过使用 Shift-Enter 快捷键或单击工具栏上的Run按钮或菜单栏中的Cell->Run Cells来执行其内容。单元格的执行行为取决于单元格的类型。
有四种基本类型的单元格:
1.Code cells(代码单元格) :在内核中运行的实时代码的输入和输出
2.Markdown cells(Markdown 单元格) :带有嵌入式 LaTeX 方程的叙述文本
3.Heading cells(标题单元格) :已弃用。 Markdown 单元格支持标题
4.Raw cells(Raw 单元格) :使用 nbconvert 将 Notebook 转换为不同格式时,包含的未经格式化的文本,如,在 Raw 单元格中键入完整的 LaTeX,仅在通过 nbconvert 转换后才由 LaTeX 渲染
每个单元格最初都是代码单元格,可以通过使用工具栏上的下拉菜单(Code)来更改其类型。
代码单元格可以编辑和编写代码,并具有语法高亮和 tab 补全功能。代码单元格使用的编程语言取决于内核,默认内核(IPython)运行 Python 代码。执行代码单元后,它包含的代码将发送到与 notebook 关联的内核。然后,从计算返回的结果将在 notebook 中显示为单元格的输出。
从 IPython 2.0 开始, Jupyter Notebook 具有模态用户界面。Jupyter Notebook 有两种模式:编辑模式和命令模式。
编辑模式由绿色单元格边框和编辑器区域中显示的光标指示。 当单元格处于编辑模式时,可以像普通的文本编辑器一样键入代码和文本。通过按 Enter 键或使用鼠标单击单元格的编辑器区域,进入编辑模式。
命令模式由带有蓝色左边界的灰色单元格边框指示。通过按 Esc 或使用鼠标在单元格的编辑器区域之外单击来进入命令模式。
在命令模式下,可以整体编辑笔记本(如复制、粘贴等) ,但不能在单个单元格中键入内容。
代码在称为内核的单独进程中运行。内核可以被中断或重新启动。尝试运行以下单元格
import time time.sleep(20)
右上角的Python 3旁边的黑色实心圆点表示内核正在运行中,如果为空心圆点则表示内核处于空闲状态。由于需要运行 20 秒,可以单击工具栏中的“停止”按钮,中断内核运行,如下图所示
注意:每一次运行代码时一定要等上一次代码执行结束后(圆圈为空心圆圈,不是黑色实心圆),在运行下一段代码。
code cell 的运行和实现依赖 IPython,IPython 是一个功能强大的交互式 python shell,比默认的 python shell 好用得多,支持变量自动补全、自动缩进、 支持 bash shell 命令,内置了许多很有用的功能和函数。 同时 IPython 也是供 Jupyter Notebook 使用的一个 Jupyter 内核(IPython notebook) , 可在 Jupyter Notebook 中使用 Python 代码。
Python 不仅支持 Python 代码,还支持 Shell 命令, 这些命令由操作系统提供。 由于 PYNQ 运行在 Linux上,因此默认使用 bash shell。
运行 shell 命令的方式很简单。 在任何代码单元中,以“!”开头的命令(感叹号也称为“bang”字符) 均被重定向到操作系统 shell。
查看当地工作目录:
四、Jupyter Lab
Jupyter Lab 是一个基于 web 的交互式开发环境,是 Jupyter 的下一代 Notebook 界面。
使用Jupyter Lab登录开发板
http://192.168.2.99:9090/lab
由于 Jupyter Lab 可以看做 Jupyter Notebook 的加强版,使用上并无多大差异。