Image Image Image Image Image

12

1 月

从0开始学Python 03 神器:Jupyter

  • By IanGoo

其实,这一节内容放在开发环境搭建里更合适。但是Jupyter实在是太巴适了,以至于我更倾向于单开一节来专门聊一聊这个东西。

其实,我自己在学Python的时候,采用的方法就是在Jupyter里写笔记,然后将经验搬出来,写这一系列的文章。我平时日常使用的笔记其实是Notion,但是为什么我为了学Python专门在这个“Jupyter”里记笔记呢?

这得追溯到一个上古巨神——高德纳。

他是:

  • 《计算机程序设计艺术》的作者(以我的道行是根本看不懂这套书的,就不丢人了)。
  • \TeX的作者和MetaFont的作者(跪)。
  • 上面这俩纯粹是因为现有的轮子不好用自己顺手发明了一下(拜)。
  • 算法分析和数据结构的开创者(磕)。

高德纳提出了一种非常有趣的理念——Literate Programming(文字化编程)。

码代码,实际上是用接近自然语言的语句但是实际上仍然是属于机器的语言来告诉机器怎么做事。机器的语言对人类来说当然是不友好的。那么,是否存在一种可能,能够将人类的自然语言和代码融合起来呢?

这也就是高德纳在同样名为Literate Programming的论文[1]中提到的想法。

简单点说,一个Literate Programming的文档当中包含两种类型的内容:第一是给电脑阅读并且可以执行的代码块;第二是给人阅读的文本块。这也就是Jupyter的基本思路。Jupyter的文本块采用的是Markdown,而代码块则支持包括Python在内的好几种语言。

了解到这一点之后,就会明白为什么Jupyter极度适合拿来写Python的学习笔记了:完全可以在一段文本记录要点之后,立马写一段代码并且可以在笔记里直接执行,这就太棒了。

Jupyter的安装不算复杂,第一步当然是要安装Jupyter:

pip install jupyter

两种手段:

第一种,直接在万能的VSCode里安装Jupyter插件。当然,前置是安装好Python插件,这样,通过VSCode便可以直接打开Jupyter的.ipynb文件,并正确渲染其中的Markdown内容、执行其中的Python代码块。效果大概是这样的:

第二种则是Jupyter Notebook的原生用法。在安装了Jupyter之后,还需要安装一个notebook组件:

pip install notebook

安装完成后,定位到包含.ipynb文件的目录当中,然后执行:

jupyter notebook

一顿操作之后,Jupyter Notebook会自动启动浏览器,只需要点击其中的.ipynb文件,就可以在浏览器中编写。

一般来说,本地可以直接用VSCode安装插件编辑本地的.ipynb文件,安装Notebook更适合自己架个服务器在云端跑笔记,按需使用即可。

在某些比较奇怪的情况下,VSCode的Jupyter插件也有可能会出问题,特别是在Python大版本更新的时候,我就遇到过,VSCode的Jupyter插件识别不出我自己安装的ipykernel包,这时候如果直接按Install让VSCode自己安装的话,这个傻货肯定会直接将Package安装到AppData里。碰到这种情况,就得用从0开始学Python:02搭建开发环境当中提到的清空Package后重装的方法了。

专门针对Jupyter水了一篇,主要是因为这玩意儿真的是我在接触代码的经历中认为这是一个非常新颖的东西,事实上,在写Python学习的过程中,我自己的学习笔记就是在Jupyter里编写的,而且长达数万字。

Reference

  1. https://wiki.c2.com/?LiterateProgramming[]

Tags |