前面提到 Jupyter Notebook 是一个交互式笔记本,支持运行 40 多种编程语言,非常适合教学。最近,学习 Go 语言,就想起了 Jupyter。本文主要描述如何在 Jupyter 里面安装 Python3 和 Go 内核。
1. Jupyter 安装
在 CentOS 7 中,默认安装了 Python 2.7,有现成的 Python 环境可用。
- 安装 Jupyter
|
|
- 生成密码
在 IPython 中,利用 passwd 函数生成密码 sha1 值。
ipython
In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:************************************************'
- 生成配置文件
执行命令,jupyter notebook --generate-config
,生成 ~/.jupyter/jupyter_notebook_config.py
配置文件。
编辑 jupyter_notebook_config
文件,新增如下内容:
|
|
其中,passwd 为刚才生成的密码 sha1 值,root_dir 为 Jupyter Notebook 数据存放根目录。
- 启动 Jupyter
至此,基本就完成了 Jupyter 的安装和配置,可以启动 Jupyter。
|
|
- 非 roor 启动时,报错
如果以非 root 权限启动,会报错:OSError: [Errno 13] Permission denied: ‘/run/user/0/jupyter’。这是由于没有权限所致。只需要在有权限的目录,使用 virtualenv 创建 Python 环境 /home/jupyter/py2
。
执行命令,修改 XDG_RUNTIME_DIR 值:
|
|
查看 runtime 路径:
|
|
2. supervisor 托管 Jupyter
在服务器端运行 Jupyter,为了能够在程序 dump 时,自动拉起,需要将 Jupyter 托管给 supervisor。
- 安装 supervisor
|
|
- 创建配置文件目录
|
|
- 创建 supervisor 配置文件
|
|
- 编辑 supervisor 配置文件
编辑 /etc/supervisor/supervisord.conf
文件,新增如下内容:
|
|
/etc/supervisor/conf.d/
文件夹下的所有配置文件,都会被导入 。这样是为了方便管理,可以为每个进程或相关的几个进程单独写成一个配置文件。
- 新增 Jupyter 配置 jupyter.ini
新增文件 /etc/supervisor/conf.d/jupyter.ini
,内容如下:
|
|
- 创建日志目录
|
|
- 启动 supervisor
可以简单的执行,启动 supervisor:
|
|
也可以指定配置文件启动
|
|
- 查看状态 supervisorctl
supervisorctl 是一个用于与 supervisord 交互的程序。通过 supervisorctl ,我们可以完成对托管进程的管理。下面是一些基本的命令:
|
|
3. Jupyter 配置 Go Kernel
gophernotes 是 Jupyter 的 Go 内核。下图是,配置完内核后,在 Jupyter 中执行 Go 的示例:
- 安装依赖项
gophernotes 有四个依赖项:
- Go 1.9+
- Jupyter Notebook or nteract
- ZeroMQ 4.X.X
- pkg-config
在 CentOS 7 上只需安装 ZeroMQ 和 Go, 即可,满足依赖。
|
|
- 安装 gopherdata
|
|
- 没有加入 PATH,找不到 gophernotes
错误提示:OSError: [Errno 2] No such file or directory
|
|
可以按照 GitHub 上面的提示创建软链接,也可以直接将 gophernotes 拷贝到 /usr/bin/
目录。
4. Jupyter 配置 Python3 Kernel
配置完 Go,顺手又配置了一下 Python3 。下图是,配置完内核之后,在 Jupyter 执行 Python3 的示例:
- 查看可用的 Python3 版本
|
|
- 安装 Python36
|
|
- 安装 pip3
|
|
- 安装 kernel
python36 -m pip install ipykernel
python36 -m ipykernel install
- widgetsnbextension 没有安装并启用,报错
前端错误提示,404,找不到 /jupyter/nbextensions/widgets/notebook/js/extension.js
安装并启动 widgetsnbextension ,即可。
|
|
5. Markdown 增强
notedown 插件,可以使用 Markdown 创建 Jupyter 笔记,同时支持在线新建、编辑 Markdown 文件。
- 安装
|
|
- 配置
编辑 ~/.jupyter/jupyter_notebook_config.py
,新增如下内容:
|
|