jupyter notebook 安装与使用简介

2021.1.16 更新

jupyter notebook 已过时,推荐使用 jupyter lab,引入了多窗口模式,类似集成开发环境,比 jupyter notebook 功能更强大。

From Jupyter offical website

\Downarrow 原本关于 jupyter notebook 的内容 \Downarrow

引言

jupyter notebook 是一个非常好用的交互式编程环境,界面友好,调试方便。jupyter 是 Julia, Python, R 三种语言的缩写,这三种语言也是 jupyter 支持的核心语言。

在 Ubuntu 系统下的安装

jupyter notebook的安装非常简单,首先确认一下系统的 python 版本为 python 3 并且安装了 pip3,具体设置可以参考这篇文章。然后用如下命令安装:

python3 -m --user pip install jupyter

上述安装如果遇到问题,可以参考 jupyter notebook 官网的详细安装教程 .
打开jupyter notebook也非常简便,只需命令:

jupyter notebook 

如果是 Ubuntu 18.04 系统,用如下命令安装:

sudo apt install jupyter-notebook

然后用

jupyter-notebook

打开。

运行 jupyter notebook 之后界面如下:


1.png

使用

创建一个新文件

进入 jupyter notebook 主界面后,在右上角可以新建一个你想要的文档类型。

图片.png

上图中,jupyter 的 kernel 只有一个 Python 2,所以目前只能基于 Python 2 创建编程环境。可以手动增加 jupyter 的 kernel,例如将某一 python 虚拟环境设置为 jupyter kernel (参考本博客中的另一篇文章),也可以添加另一种语言的 kernel,例如 Julia,未来会有文章专门介绍 Julia 的使用方法。

新建文件后,界面主要包含 4 部分,如图所示:


图片.png

从上到下依次为:

  • 标题栏:点击标题(例如 Untitled)可更改
  • 菜单栏:File, Edit, View, ...
  • 工具栏: 包括一些快捷按钮,如保存,新建,剪切等
  • 编辑区:输入代码或者其他描述语言的地方。

单元格设置

编辑区可以由很多个单元格组成,例如上图中显示 In [ ]: 的框就是一个单元格。

单元格有 4 种格式, jupyter notebook 工具栏后部有个下拉菜单选项,可以选择单元格的格式

  • Code —— 代码格式
  • Markdown —— Markdown 编辑器格式 ,Markdown 语法和编辑器的使用可以参考本文
  • Heading —— 加入标题,例如一级标题、二级标题等,但是选择该项时会提示:建议用 Markdown 的方式书写标题,不要再单独选择 Heading 这种单元格的格式了。所以,我猜想后续版本的 jupyter 很可能把这种格式废除掉。
  • Raw NBConvert —— 说实话,我从来没用过这种单元格格式,据官网介绍,大概意思是将 jupyter notebook 转换成其他格式(如 HTML, latex)时进行的一些特别的输出格式设置。

单元格默认是 code 格式,如果想切换成其他格式,一种方式是在上边的下拉菜单中选择,另一种方式是用快捷键,更有效率。例如点击单元格左端(不要点进单元格),按 m 键将单元格设置为 Markdown 格式,按 y 键设置为 code 格式。

书写与保存

当程序很长的时候,我们可以把整个程序分成的若干小段,写入多个单元格内,每个单元格都可以单独运行。这样的好处是方便调试,例如有时候只修改了程序中间的一小段代码,或者想单独看某一段代码的输出,就可以只运行相关的单元格,个人非常喜欢这个功能的设计。另外,单元格还可以上下移动,改变彼此之间的顺序。

像很多文件一样,Ctrl + S 快捷键可以保存 jupyter notebook 的文件,默认保存为 ipynb 格式,这是沿用了 jupyter notebook 的前身 —— ipython notebook 的扩展名。

常用快捷键

Ctrl + Enter —— 执行单元格代码,并停留在本单元格
Shift + Enter —— 执行单元格代码,并移动到下一个单元格
Alt + Enter —— 执行单元格代码,新建并移动到下一个单元格

所有的快捷键可以在菜单栏中的 help --> keyboard shortcuts 中找到,如下


shortcuts.png

添加左边栏目录

如果 note 写的比较长,最好有个目录,方便查找。安装目录插件的详细方法见此处。总结一下只有 3 步:

  1. 安装 python package
pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master --user
  1. 安装 javascript 和 css files
jupyter contrib-nbextension install --user
  1. 打开 jupyter notebook,可以看到菜单栏最后多了一项 Nbextensions


    jupyter_extension.png

    进入 Nbextensions, 选中 Table of Contents (2)


    jupyter_extension2.png

    此时,打开或新建 Jupyter notebook 文件,就可以看到左侧的导航栏
    jupyter_extension3.png

可能遇到的问题

明明在命令行中用 pip 安装了某些 python package,在 jupyter 中调用时却提示没有找到。
可能的原因是:安装 package 的那个版本不是 jupyter 用的版本。

  • 查看系统中 python 版本:which python,可以定位到系统默认的版本,一般是 /usr/bin/python ,它本身是一个超链接,指向 python2 或者 python3 的某个具体版本。
    例如:
$ which python
/usr/bin/python

$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       9 10月 27 14:25 /usr/bin/python -> python3.6
lrwxrwxrwx 1 root root       9 4月  16  2018 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3628976 9月  30 21:38 /usr/bin/python2.7
lrwxrwxrwx 1 root root      33 9月  30 21:38 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx 1 root root      16 4月  16  2018 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x 1 root root     365 8月  23  2016 /usr/bin/python2-qr
lrwxrwxrwx 1 root root       9 9月   7 17:03 /usr/bin/python3 -> python3.6
-rwxr-xr-x 2 root root 4526456 10月  8 20:12 /usr/bin/python3.6
lrwxrwxrwx 1 root root      33 10月  8 20:12 /usr/bin/python3.6-config -> x86_64-linux-gnu-python3.6-config
-rwxr-xr-x 2 root root 4526456 10月  8 20:12 /usr/bin/python3.6m
lrwxrwxrwx 1 root root      34 10月  8 20:12 /usr/bin/python3.6m-config -> x86_64-linux-gnu-python3.6m-config
...
  • 查看 jupyter 用的 python 版本:
    在 jupyter 中执行
import sys

sys.executable  # 返回 jupyter 调用的 python 路径

要确保上述两个 python 版本相同。

总结

jupyter notebook 是一个很好用的交互式编程工具,很方便学习 python, julia 等语言。本文只是简单介绍,感兴趣的读者可以去官网在线 doc 深入学习。

Written by YY
Revised by QP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容