「EP」02 在Vscode中使用Jupyter Notebook(重制)
Greetings! ¶
嗨!这里是阿乎的博客!(> ▽ <) /~
Jupyter Notebook是一个非常流行的Python交互式环境,它允许用户将代码、文本、图像等内容整合在一个文档中,甚至分段(分为多个cell)运行代码,查看运行结果。Even better,其可以保存每一个cell的运行结果,并且导出为多种格式如.html、.pdf,以便展示你的思考过程。
传统的Jupyter Notebook是在浏览器中运行的,不过其后端需要一直运行着一个终端,启动时会稍显卡顿并且少有可拓展性。(而且大部分初学者会通过Anaconda Navigator(那个启动会会一直显示在屏幕中间的绿色的圈)来运行Jupyter Notebook,进一步延长了启动的时间)
于是,使用其他编辑器来运行Jupyter Notebook就成为了一个很好的选择。
本章我会介绍如何在Vscode中使用Jupyter Notebook。
1. 安装Jupyter插件 ¶
打开Vscode,点击左侧的Extensions,搜索Jupyter,安装第一个即可。它会同时自动下载其它所需要的插件。
- 如果你担心一个插件不够用,那么可以将搜索结果中由
Microsoft开发的Jupyter插件也安装上。这些插件有着微软团队的长期维护和更新,相对来说更加安全稳定。

2. 创建一个Jupyter Notebook ¶
Jupyter Notebook的文件后缀名为.ipynb,新建任意一个文件,然后将其后缀名改为.ipynb即可。
将其使用Vscode打开,你会看到这样的界面:

其中,+ code和+ markdown分别代表了新建一个代码块和一个文本块,Run All表示运行所有的代码块。
而最重要的是Select Kernel(或者说Select Jypyter Server),这是用于指定Jupyter Notebook的运行环境的。
也正是上一章节中提到的
Python解释器。
点击Select Kernel,可以看到我们需要从Python Environment(Python环境)和Existing Jupyter Server(已有的Jupyter服务器)中选择一个。接下来我们以Python Environment为例。

3. 准备运行环境 ¶
此处的Python Environment即为上一张提到的Virtual Environment(虚拟环境)。
也就是说,
.py文件和.ipynb文件可以使用相同的虚拟环境。
只不过要注意的是,运行Jupyter Notebook之前,需要为虚拟环境安装一个依赖库,即ipykernel。
# 首先激活虚拟环境,之后再安装内核
conda activate <your_env_name> # 激活虚拟环境,<>内为你自己的虚拟环境的名字
pip install ipykernel # 安装ipykernel4. 运行Jupyter Notebook ¶
现在,你可以在Jupyter Notebook中愉快地写代码了。
让我们新建一个code块,尝试运行一段简单的代码:
print("Hello, World!")点击左侧的小三角形,即单独运行这个code块。

左侧的数字表示了运行的顺序,此处的[1]表示这是第一个运行的code块。
由于Jupyter Notebook的机制,每一个code块都会保存其运行结果(包括变量的值,函数的定义等等)。
以下例子可以很好地解释这种机制:

5. 一些使用场景 ¶
相较于.py,.ipynb文件更适合于一些交互式、实验性的代码,以及需要展示的场景。
5.1 数据分析 ¶
假如,我需要写一个绘图函数来分析一些需要加载很久的数据。如果使用.py文件,那么每次修改代码后都需要重新运行,这就导致重复地加载数据,重复地浪费时间。
然而.ipynb文件可以保存每一个code块的运行结果,也就是说在第一次加载数据后,该数据会一直保存在内存中,直到你关闭或者重启Jupyter Notebook。

5.2 分段展示代码结果 ¶
假如,我需要分段地展示一段代码的运行结果,那么.ipynb文件就是一个很好的选择。(尤其是对初学者来说)
比如此处,我需要先分析数据,之后再进行计算。如果使用.py文件,那么我需要将这两个过程分开(写两个文件,两次导入数据),而使用.ipynb文件,我可以直接在同一个文件中完成这两个过程。

6. 总结 ¶
无论是.py文件还是.ipynb文件,都是Python的代码文件,只不过后者更适合于交互式、实验性的代码。请不要一味地使用.ipynb,而是根据具体的场景选择更合适的文件类型!
Have fun! 😉