Python手册(10) Jupyter Notebook

0. 前言

  • 安装:pip install jupyter

1. 远程访问

1.1. 方法一

  • 第一步:生成配置文件 jupyter notebook --generate-config

  • 第二步:进入python命令行,生成密码。

    1
    2
    3
    4
    5
    >>> from notebook.auth import passwd
    >>> passwd()
    Enter password:
    Verify password:
    'sha1:xxxxxxxxxx'
  • 第三步:修改默认配置文件vim ~/.jupyter/jupyter_notebook_config.py

    1
    2
    3
    4
    c.NotebookApp.ip='*' # 就是设置所有ip皆可访问
    c.NotebookApp.password = u'sha:xxxx...' # 即上一部生成的值
    c.NotebookApp.open_browser = False # 禁止自动打开浏览器
    c.NotebookApp.port = 8888 #随便指定一个端口
  • 第四步:启动jupyter jupyter notebook

1.2. 方法二

  • 第一步:新建配置文件 config.json

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "NotebookApp": {
    "ip": "0.0.0.0",
    "port": 8888,
    "open_browser": false,
    "token": ""
    }
    }
  • 第二步:运行命令 jupyter notebook --config /path/to/config.json >> /dev/null &

2. 小技巧

2.1. 重载模块

1
2
import imp
imp.reload(module_name)

2.2. 执行命令行命令

  • 在语句最开始添加一个感叹号,如!ls

2.3. 设置主题

  • Github
  • 安装:pip install jupyterthemes
  • 基本使用:
    1
    2
    3
    jt -l  # 查看可用主题列表
    jt -r # 选择默认主题
    jt -t themename # 选择主题

2.4. 添加ikernel

  • 安装 ipykernel 或 jupyter,即pip install ipykernelpip install jupyter
  • 添加 kernel 命令:python -m ipykernel install --name mykernel_name
  • 注意:有可能会因为权限不足安装失败,这时需要执行 sudo /path/to/my/python -m ipykernel install --name mykernel_name

2.5. 计时

  • 在一个cell最开始添加 %%time,会计算当前cell的运行时间。
  • 对某一行添加 %time,则会计算当前行的运行时间。
  • 对某一行添加 %timeit,则会多次运行本行(说是默认跑100000次,但我是的时候跑了1loop,7runs),计算平均时间与方差。

3. 碰到的问题

3.1. 创建文件时 Permission Denied

  • 问题描述:nohup jupyter notebook 是不能正常运行的。
  • 解决:将需要常见文件的文件夹配置权限,即 chmod 777 /path/to/target/dir

3.2. Win10中偶尔出现的Matplotlib问题

  • 问题描述:
    • 当使用 plt.imshow(img) 等展示图片时不会显示图片。
    • 报错:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
  • 解决:在import完之后添加 %matplotlib notebook

4. 进阶扩展包