Jupyter Notebook入门指南
字数 2251 2025-08-11 21:26:39

Jupyter Notebook 全面教学指南

1. Jupyter Notebook 简介

Jupyter Notebook 是一套基于 web 的交互式开发环境,允许用户在线开发和分享包含代码和输出的交互式文档。它支持:

  • 实时代码执行
  • 数学方程
  • 可视化
  • Markdown 富文本

主要用途包括:

  • 数据清理和转换
  • 数值模拟
  • 统计建模
  • 机器学习开发

架构原理

Jupyter 采用客户端-服务器架构:

  • Jupyter Server:提供基于 Web 的界面和 API 服务
  • Kernel:执行代码片段的核心进程

通信方式:

  • 浏览器 ↔ Jupyter Server:HTTP 和 WebSockets
  • Jupyter Server ↔ Kernel:ZeroMQ

2. 安装与配置

安装前提

  • Python 3.6+(Jupyter Notebook v6.5.2 要求)
  • pip 包管理工具

安装步骤

# 更新pip
pip install --upgrade pip

# 安装Jupyter
pip install jupyter

# 验证安装
jupyter --version

配置文件

生成配置文件:

jupyter notebook --generate-config

默认位置:~/.jupyter/jupyter_notebook_config.py

重要配置项

配置项 默认值 说明
c.NotebookApp.allow_root False 是否允许root用户运行
c.NotebookApp.allow_origin '' 设置允许的origin(如"*")
c.NotebookApp.ip 'localhost' 服务监听IP
c.NotebookApp.port 8888 服务端口
c.NotebookApp.notebook_dir '/' 工作空间目录
c.NotebookApp.open_browser True 启动后是否自动打开浏览器
c.NotebookApp.default_url '/tree' 默认访问路径

3. 核心功能与使用

3.1 基本操作

启动服务

jupyter notebook

访问令牌

jupyter notebook list
# 返回格式:http://x.x.x.x:8899?token=ABC

3.2 Notebook 文件

  • 文件格式:.ipynb(JSON格式)
  • 包含:代码、文本内容和元数据

3.3 单元格类型

  1. Code:编写可执行代码
  2. Markdown:编写富文本
  3. Raw NBConvert:原始文本(不解释执行)
  4. Heading:标题(Markdown子集)

3.4 检查点

  • 自动保存修改记录
  • 手动保存:文件 → 保存
  • 位置:.ipynb_checkpoints 目录

4. 高级功能

4.1 魔法函数

查看所有魔法函数:

%lsmagic

常用魔法函数:

指令 类型 说明
%matplotlib 设置matplotlib显示模式
%%javascript 单元格 执行JavaScript代码
%%html 单元格 执行HTML代码
%run 执行外部脚本
%pwd 获取当前工作目录
%timeit 测量代码执行时间
%debug 激活调试模式

4.2 内核管理

查看已安装内核

jupyter kernelspec list

安装新内核

# 安装ipykernel
pip install ipykernel

# 注册内核
python -m ipykernel install --name 内核名称 --display-name "显示名称"

删除内核

jupyter kernelspec remove 内核名称

4.3 多语言支持

翻译文件位置:

  • nbjs.po - JS文件翻译
  • nbui.po - UI界面翻译
  • notebook.po - Notebook内容翻译

编译翻译文件:

pybabel compile -D notebook -f -l ${LANG} -i ${LANG}/LC_MESSAGES/notebook.po -o ${LANG}/LC_MESSAGES/notebook.mo

5. 扩展开发

5.1 前端扩展

示例扩展(保存为main.js):

define(['base/js/namespace'], function(Jupyter) {
    function load_ipython_extension() {
        var handler = function() { alert('欢迎使用前端扩展!'); };
        var action = {
            icon: 'fa-comment-o',
            help: '前端扩展',
            help_index: 'zz',
            handler: handler
        };
        var prefix = 'my_extension';
        var action_name = 'show-alert';
        var full_action_name = Jupyter.actions.register(action, action_name, prefix);
        Jupyter.toolbar.add_buttons_group([full_action_name]);
    }
    return { load_ipython_extension: load_ipython_extension };
});

管理命令

# 安装
jupyter nbextension install /path/to/ext

# 启用
jupyter nbextension enable ext_name/main

# 禁用
jupyter nbextension disable ext_name/main

# 卸载
jupyter nbextension uninstall ext_name

5.2 服务端扩展

示例扩展(保存为__init__.py):

from tornado import gen, web
from notebook.base.handlers import IPythonHandler

class HelloWorldHandler(IPythonHandler):
    @web.authenticated
    @gen.coroutine
    def get(self):
        self.finish('Hello, world!')

def load_jupyter_server_extension(serverapp):
    handlers = [('/myextension/hello', HelloWorldHandler)]
    serverapp.web_app.add_handlers('.*$', handlers)

配置文件结构

hello-extension/
    __init__.py
    jupyter-config/
        jupyter_notebook_config.d/
            hello_extension.json

管理命令

# 启用
jupyter serverextension enable hello_extension

# 禁用
jupyter serverextension disable hello_extension

5.3 小部件(Widgets)

安装

pip install --upgrade traitlets
pip install --upgrade ipywidgets

jupyter nbextension install --py widgetsnbextension
jupyter nbextension enable --py widgetsnbextension

6. REST API

Jupyter 提供完整的 REST API 用于:

  • 文件上传/下载
  • 检查点管理
  • 会话管理
  • 内核管理
  • 终端管理

认证方式

  1. Token 作为查询参数:?token=ABC
  2. Authorization 头:Authorization: token ABC

API文档:https://jupyter-server.readthedocs.io/en/latest/developers/rest-api.html

7. 安全与协作

安全建议

  1. 避免使用 root 用户运行
  2. 合理配置工作空间目录权限
  3. 使用 Python 虚拟环境隔离依赖
  4. 谨慎配置 allow_origin

多人协作

使用 JupyterHub 实现:

  • 多用户独立空间
  • Notebook 共享
  • 权限管理

8. 应用场景

  1. 交互式文档:结合代码和说明的生动文档
  2. 数据探索:实时查看数据处理结果
  3. 教学演示:逐步执行代码展示过程
  4. 研究报告:整合分析过程和可视化结果

9. 导出与分享

导出格式

  • HTML
  • PDF
  • Markdown
  • Python脚本

分享方式

  1. 交互式:分享 .ipynb 文件或访问URL
  2. 静态文档:导出为HTML/PDF等格式

本指南涵盖了 Jupyter Notebook v6.5.2 的核心功能和高级用法,适用于从入门到进阶的各类用户。通过灵活运用这些功能,可以极大提升数据科学和机器学习开发的工作效率。

Jupyter Notebook 全面教学指南 1. Jupyter Notebook 简介 Jupyter Notebook 是一套基于 web 的交互式开发环境,允许用户在线开发和分享包含代码和输出的交互式文档。它支持: 实时代码执行 数学方程 可视化 Markdown 富文本 主要用途包括: 数据清理和转换 数值模拟 统计建模 机器学习开发 架构原理 Jupyter 采用客户端-服务器架构: Jupyter Server :提供基于 Web 的界面和 API 服务 Kernel :执行代码片段的核心进程 通信方式: 浏览器 ↔ Jupyter Server:HTTP 和 WebSockets Jupyter Server ↔ Kernel:ZeroMQ 2. 安装与配置 安装前提 Python 3.6+(Jupyter Notebook v6.5.2 要求) pip 包管理工具 安装步骤 配置文件 生成配置文件: 默认位置: ~/.jupyter/jupyter_notebook_config.py 重要配置项 | 配置项 | 默认值 | 说明 | |--------|--------|------| | c.NotebookApp.allow_root | False | 是否允许root用户运行 | | c.NotebookApp.allow_origin | '' | 设置允许的origin(如"* ") | | c.NotebookApp.ip | 'localhost' | 服务监听IP | | c.NotebookApp.port | 8888 | 服务端口 | | c.NotebookApp.notebook_dir | '/' | 工作空间目录 | | c.NotebookApp.open_browser | True | 启动后是否自动打开浏览器 | | c.NotebookApp.default_url | '/tree' | 默认访问路径 | 3. 核心功能与使用 3.1 基本操作 启动服务 : 访问令牌 : 3.2 Notebook 文件 文件格式: .ipynb (JSON格式) 包含:代码、文本内容和元数据 3.3 单元格类型 Code :编写可执行代码 Markdown :编写富文本 Raw NBConvert :原始文本(不解释执行) Heading :标题(Markdown子集) 3.4 检查点 自动保存修改记录 手动保存:文件 → 保存 位置: .ipynb_checkpoints 目录 4. 高级功能 4.1 魔法函数 查看所有魔法函数: 常用魔法函数: | 指令 | 类型 | 说明 | |------|------|------| | %matplotlib | 行 | 设置matplotlib显示模式 | | %%javascript | 单元格 | 执行JavaScript代码 | | %%html | 单元格 | 执行HTML代码 | | %run | 行 | 执行外部脚本 | | %pwd | 行 | 获取当前工作目录 | | %timeit | 行 | 测量代码执行时间 | | %debug | 行 | 激活调试模式 | 4.2 内核管理 查看已安装内核 : 安装新内核 : 删除内核 : 4.3 多语言支持 翻译文件位置: nbjs.po - JS文件翻译 nbui.po - UI界面翻译 notebook.po - Notebook内容翻译 编译翻译文件: 5. 扩展开发 5.1 前端扩展 示例扩展 (保存为main.js): 管理命令 : 5.2 服务端扩展 示例扩展 (保存为__ init__ .py): 配置文件结构 : 管理命令 : 5.3 小部件(Widgets) 安装 : 6. REST API Jupyter 提供完整的 REST API 用于: 文件上传/下载 检查点管理 会话管理 内核管理 终端管理 认证方式 : Token 作为查询参数: ?token=ABC Authorization 头: Authorization: token ABC API文档:https://jupyter-server.readthedocs.io/en/latest/developers/rest-api.html 7. 安全与协作 安全建议 避免使用 root 用户运行 合理配置工作空间目录权限 使用 Python 虚拟环境隔离依赖 谨慎配置 allow_origin 多人协作 使用 JupyterHub 实现: 多用户独立空间 Notebook 共享 权限管理 8. 应用场景 交互式文档 :结合代码和说明的生动文档 数据探索 :实时查看数据处理结果 教学演示 :逐步执行代码展示过程 研究报告 :整合分析过程和可视化结果 9. 导出与分享 导出格式 : HTML PDF Markdown Python脚本 分享方式 : 交互式:分享 .ipynb 文件或访问URL 静态文档:导出为HTML/PDF等格式 本指南涵盖了 Jupyter Notebook v6.5.2 的核心功能和高级用法,适用于从入门到进阶的各类用户。通过灵活运用这些功能,可以极大提升数据科学和机器学习开发的工作效率。