虚谷号Jupyter入门教程

1.1 什么是Jupyter

Jupyter的全称为Jupyter Notebook(此前被称为IPython notebook),是一个交互式笔记本,支持运行40多种编程语言。通过Jupyter,可以通过Web页面在虚谷号上运行Python代码和Linux命令。虚谷号的无线模式主要采用Jupyter来实现。

Jupyter的本质是一个Web应用程序,便于创建和共享程序文档,支持实时代码,数学方程,可视化和Markdown。很多人喜欢直接在Jupyter上写代码,并同步记录学习心得,这样的学习笔记实际上就是一个很好的教程。

1.2 Jupyter快速入

1)访问Jupyter

看到了这个文件,相信你已经打开了虚谷号的Jupyter。请使用谷歌浏览器(或者使用谷歌浏览器内核的浏览器)访问Jupyter。虚谷号的Wi-Fi有记忆功能,一般来说IP地址是不会变化的。当Wi-Fi信息设置好后,只要提供电源和Wi-Fi信号,就能使用Jupyter来访问虚谷号。

2)浏览Jupyter笔记

虚谷号上提供了很多学习笔记,默认放在“vvBoardbook”文件夹中。通过浏览这些学习笔记,可以快速掌握Python代码,了解虚谷号的基本功能。

这些学习笔记中,有文字、图片还有Python代码。笔记中的代码可以即时编辑,还可以在线执行,并且能够返回运行结果。

用鼠标选中代码输入框(jupyter中称为“单元格”),单元格出现蓝色或者绿色边框,表示被选中。在菜单中选择“执行”命令,单元格的下方将出现单元格代码执行效果。执行完毕后,“in [ ]”中的括号将出现一个数字,表示单元格代码运行的次序。

1.3 Jupyter可以做什么

1)学习Python编程

Jupyter被誉为最好用的Python IDE之一,用来调试Python事半功倍。还可以在网页上显示虚谷号的传感器数值、摄像头内容等等。其实Jupyter不仅仅支持Python,还支持多种语言,这需要另外安装插件。

通过“新建”-“Python3”,即可新建一个笔记。

2)运行Linux命令

通过“新建”-“终端”,即可打开Web界面的终端。

在仿真的终端页面,Jupyter几乎支持所有的命令,如安装软件、安装Python库文件、运行Python程序等。当关闭窗口后,再次打开,还能够看到之前的命令运行状态。

通过终端页面,还能够看到一共有几个命令窗口在运行。在不同电脑登陆Jupyter,可以共享这一界面,尤其适用于教学。

3)管理虚谷号

Jupyter支持文件的上传和下载,新建文件、文件夹,删除、改名等操作,可以用来管理虚谷号的文件资源,可以安装各种库、软件等等。

1.4 Jupyter的代码调试技巧

1)如何快速运行指定的代码?

Jupyter单元格中的代码,可以按照任意次序进行执行。Jupyter提供了多种执行代码的方式,在“单元格”菜单中。分为:运行所有单元格、运行所有、运行上面的代码块、运行下面的代码块等。

在调试代码的过程中,稍微复杂些的代码,往往需要全部重启,好查看程序的整体效果。如在测试GPIO的代码时,之前的代码对后面的代码会产生影响,这就需要重启服务。具体的功能在“服务”菜单中。可以选择“重启 & 清空输入”、“重启 & 运行所有”

2.为什么打开笔记的时候,所有的代码都已经运行了?

Jupyter笔记会保留代码运行的状态,打开一个笔记往往会看到很多的输出信息。如何让这些信息消失,保持代码的未运行状态?那就需要在关闭笔记前,执行“重启 & 清空输入”,然后保存退出。

3.为什么打开多个笔记后Iupyter的运行速度变慢?

打开Iupyter的笔记,关闭页面并不能结束程序运行,还会有线程在单独运行,占用虚谷号的内存。当打开较多的程序,直接使用关闭页面的方式来关闭笔记,可能会导致内存不够用而死机。创客版的内存比教育版小,感觉会比较明显。

避免这种情况最好方法便是彻底结束程序运行。结束程序的方法如下:1、运行完程序,需要结束则在程序的页面选择“服务”-“关闭”。2、关闭程序的页面,看到程序的目录刚运行的程序呈绿色,并且显示运行,勾选前面的小方框,在选择出现的黄色的关闭选项,即可结束程序的运行。3、点击Jupyter的“运行”,会看到当前在运行的终端和笔记,逐个关闭即可。

1.5 如何用Jupyter写笔记

Jupyter的笔记中既可以插入代码,也可以用MarkDown语法排版的文字。

MarkDown教程:https://baike.baidu.com/item/markdown/3245829?fr=aladdin

Jupyter支持用“CTRL+C”的形式插入图片。

1.6 关于Jupyter的常见问题

1)除了虚谷号内置的笔记,还有其他的笔记吗?

虚谷号团队在不断编写学习笔记,除此之外,在网上能够找到很多jupyter学习笔记(扩展名为ipynb),如jupyter的官方网站。(https://nbviewer.jupyter.org/)。

2)可以多人一起使用Jupyter吗?

可以。甚至可以多人共同编辑一个笔记。。

3)Jupyter的笔记能不能导出来?

当然可以,Jupyter的笔记能够导出很多种格式,如py、pdf、html等等。

4)在Jupyter上,如何做交互,比如输入字符之类。

不仅可以直接在网页上输入,还能够利用Jupyter的网页小控件,做文本框、选择框等。图片也可以直接显示在网页上。