「EP」02 Jupyter Notebook with Vscode

Greetings!

Yaho~ ふちゃんです!(> ▽ <) /~

Jupyter Notebook是一个非常流行的Python交互式环境,它允许用户将代码文本图像等内容整合在一个文档中,甚至分段(分为多个cell)运行代码,查看运行结果。Even better,其可以保存每一个cell的运行结果,并且导出为多种格式如.html.pdf,以便展示你的思考过程。

传统的Jupyter Notebook是在浏览器中运行的,不过其后端需要一直运行着一个终端,其启动会稍显卡顿并且没有可拓展性。

于是,使用其他编辑器来运行Jupyter Notebook就成为了一个很好的选择,比如说Vscode

1. 安装Jupyter插件

打开Vscode,点击左侧的Extensions,搜索Jupyter,安装第一个即可。它会同时自动下载其它所需要的插件。

  • 如果你担心一个插件不够用,那么可以将搜索结果中由Microsoft开发的Jupyter插件也安装上。这些插件的安全性是有保障的。

Extensions

2. 创建一个Jupyter Notebook

Jupyter Notebook的文件后缀名为.ipynb,新建任意一个文件,然后将其后缀名改为.ipynb即可。

将其使用Vscode打开,你会看到这样的界面:

Jupyter Notebook

其中,+ code+ markdown分别代表了新建一个代码块和一个文本块,Run All表示运行所有的代码块。

而最重要的是Select Kernel(或者说Select Jypyter Server),这是用于指定Jupyter Notebook的运行环境的。

也正是上一章节中提到的Python解释器。

点击Select Kernel,可以看到我们需要从Python EnvironmentPython环境)和Existing Jupyter Server(已有的Jupyter服务器)中选择一个。接下来我们以Python Environment为例。

Select Kernel

3. 准备运行环境

此处的Python Environment即为上一张提到的Virtual Environment(虚拟环境)。

也就是说,.py文件和.ipynb文件可以使用相同的虚拟环境。

只不过要注意的是,运行Jupyter Notebook之前,需要为虚拟环境安装内核(即一个依赖库)。

# 首先激活虚拟环境,之后再安装内核
pip install ipykernel

4. 运行Jupyter Notebook

现在,你可以在Jupyter Notebook中愉快地写代码了。

让我们新建一个code块,尝试运行一段简单的代码:

print("Hello, World!")

点击左侧的小三角形,即单独运行这个code块。

Run Code

左侧的数字表示了运行的顺序,此处的[1]表示这是第一个运行的code块。

由于Jupyter Notebook的机制,每一个code块都会保存其运行结果(包括变量的值,函数的定义等等)。

以下例子可以很好地解释这种机制:

Run Code

5. 一些使用场景

相较于.py.ipynb文件更适合于一些交互式、实验性的代码,以及需要展示的场景。

5.1 数据分析

假如,我需要写一个绘图函数来分析一些需要加载很久的数据。如果使用.py文件,那么每次修改代码后都需要重新运行,这就导致重复地加载数据,重复地浪费时间。

然而.ipynb文件可以保存每一个code块的运行结果,也就是说在第一次加载数据后,该数据会一直保存在内存中,直到你关闭或者重启Jupyter Notebook

Data Analysis

5.2 分段展示代码结果

假如,我需要分段地展示一段代码的运行结果,那么.ipynb文件就是一个很好的选择。(尤其是对初学者来说)

比如此处,我需要先分析数据,之后再进行计算。如果使用.py文件,那么我需要将这两个过程分开(写两个文件,两次导入数据),而使用.ipynb文件,我可以直接在同一个文件中完成这两个过程。

Data Analysis

6. 总结

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

Fin.


「EP」02 Jupyter Notebook with Vscode
https://siriusahu.github.io.git/2024/10/08/EP-02-Jupyter_with_Vscode/
Author
Sirius Ahu
Posted on
October 8, 2024
Licensed under