Jupyter Notebook 食用指南

延期开学的咸鱼在家无事可做,打算刷刷 MOOC 掉点头发,记笔记的时候发现 OneNote 没法记录代码,缩进高亮行号都没有,于是就想到了一直在电脑里躺尸的 Jupyter Notebook,记录下安装及食用的方法

安装 Jupyter Notebook

安装 Jupyter Notebook 之前需要先安装好 Python 或 Anaconda,可以使用 conda(Anaconda) 和 pip 两种方式安装

Jupyter 官方推荐按使用 conda(Anaconda) 来安装,安装 Anaconda 的时候一般会默认安装 Jupyter Notebook,但如果没有安装的话就使用下面的命令

1
conda install jupyter notebook

不用 Anaconda 的话就用 pip 安装,命令为

1
pip install jupyter notebook

关于 Anaconda 和 Python 的关系

这里顺带解释一波 Anaconda 和 Python 的关系,众所周知,Python 是一门编程语言(手动狗头),而 Anaconda 相当于 Python 的发行版,带有很多科学计算类的库以及包管理器 conda。可以用 Ubuntu 和 Linux 的关系来类比。

此外安装 Anaconda 后也要手动添加系统环境变量

1
2
3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Library\bin

配置

安装 Java 扩展

我用的Java插件是 IJava,支持代码运行、自动联想、错误提示等功能,安装方式为

  1. release 页面下载压缩包
  2. 解压缩并打开解压后的文件夹
  3. 在解压后的文件夹以管理员身份运行终端
  4. 输入 python install.py -h
  5. 输入 jupyter kernelspec list 检查是否安装成功,成功的话会返回java C:\ProgramData\jupyter\kernels\java

安装 Nbextensions

这是一个扩展的集合,有诸如设置自动保存的时间间隔、支持更多的 Latex 元素、设置代码字体大小等功能,我就不列举了,插件中的每个功能都带有详细的介绍。我主要用它来显示 Markdown 的目录。安装方式为

1
conda install -c conda-forge jupyter_contrib_nbextensions

安装完会在 Jupyter 的状态栏显示,如果没有的话使用这个命令

1
jupyter contrib nbextension install --user --skip-running-check

在里面勾选 Table of Contents(2) 就可以启用目录功能了

安装 nb_conda

nb_conda 主要用于多种运行环境的切换,安装命令为

1
conda install nb_conda

修改默认存储位置

Jupyter Notebook 默认的存储位置已经有很多文件了,非常杂乱,下面要做的就是换一个指定的文件夹存储笔记

  1. 首先需要创建 Jupyter 的配置文件 C:\Users\Sun\.jupyter\jupyter_notebook_config.py ,命令为
    1
    jupyter notebook --generate-config
  2. 打开 C:\Users\Sun\.jupyter\jupyter_notebook_config.py ,搜索 c.NotebookApp.notebook_dir,删掉前面的#,然后把指定文件夹的目录复制到单引号之间,修改完是这个亚子
    1
    2
    ## The directory to use for notebooks and kernels.
    c.NotebookApp.notebook_dir = 'E:\Jupyter'
  3. 保存文件并打开 Jupyter Notebook 查看是否成功

使用方法

启动

  • 安装完成后在终端输入 jupyter notebook 就可以在浏览器中打开,默认地址为 http://localhost:8888
  • 使用jupyter notebook --port port_number可以指定端口(port_number)启动
  • 使用jupyter notebook notebook_name.ipynb可以启动对应名称(notebook_name)的笔记
  • 使用jupyter notebook --no-browser可以只启动服务而不启动浏览器

结束

结束的方法有两种

  • 在浏览器页面点击 Quit
  • 在终端中使用 ctrl + c 结束运行

主页操作

主页操作

笔记操作

笔记操作

另外点击笔记标题(Untitled)那里可以重命名

Markdown 内部跳转

Jupyter Notebook 在 Markdown 模式下可以实现内部跳转,示例:

1
2
3
[示例](#link)
跳转中间的内容
<a id=link>跳转提示语</a>

跳转提示语可以不加,不加的话跳转到的地方没有提示

命令

在 Python 内核下可以使用Shell命令,在命令前加 %即可

1
2
3
4
5
%pwd # 获取文件夹绝对路径
%ls # 获取当前文件夹文件信息
%run 文件路径 #直接运行本地文件
%load 文件路径 #加载本地文件
%load URL #加载指定网站的源代码,如https://www.baidu.com/

快捷键

Jupyter Notebook 有两种不同的键盘输入模式. 编辑模式可以将代码或文本输入到一个单元格中,并通过一个绿色的单元格来表示。命令模式将键盘与笔记本级命令绑定在一起,并通过一个灰色的单元格边界显示,该边框为蓝色的左边框。

编辑模式

编辑模式

命令模式

命令模式

自定义快捷键

Jupyter Notebook 中原有的快捷键数量不是很多,但是预留了自定义快捷键的空间,在 Help - Edit Keyboard Shortcuts 中可以进行设置,在 add shortcut 中填入对应的按键然后点击右侧的 + 即可。这里注意

  • Ctrl、Shift、Alt 等要输入完整字母,不能直接识别
  • 两个按键中间用 - 来连接
  • 设置完成记得点击右下角的确定

在这里我设置了两个快捷键

  • clear cell output,清除单元格的输出结果,快捷键 Alt-Shif-D
  • clear all cells output,清除当前笔记所有单元格的输出结果,快捷键 Alt-Ctrl-D

参考:
https://zhuanlan.zhihu.com/p/33105153
https://www.zhihu.com/question/380990243
https://blog.csdn.net/qq_34992030/article/details/89175633