设置 Jupyter
CentOS7 设置 Jupyter
Jupyter Notebook(前身是 IPython Notebook)是一个基于 Web 的交互式计算环境,用于创建 Jupyter Notebook 文档。Notebook 一词可以通俗地引用许多不同的实体,主要是 Jupyter Web 应用程序、Jupyter Python Web 服务器或 Jupyter 文档格式(取决于上下文)。Jupyter Notebook 文档是一个 JSON 文档,遵循版本化模式,包含一个有序的输入 / 输出单元格列表,这些单元格可以包含代码、文本(使用 Markdown 语言)、数学、图表和富媒体,通常以 “.ipynb” 结尾扩展。
启动
jupyter notebook --allow-root --ip 0.0.0.0 --port 9999 |
默认不允许 / 不建议 root 启动 jupyter, 如果非要用,加上–allow-root
–ip ip 填写 0.0.0.0 或者本机 ip
–port 端口号
启动后,浏览器访问对应 ip 和端口就行,需要输入 token,token 在启动界面有输出
生产配置文件
每次记住 token,复制再登录不现实
jupyter notebook --generate-config |
生成的配置文件位于
~/.jupyter/jupyter_notebook_config.py |
jupyter-notebook password |
输入两遍密码
启动,就可以 以固定密码登录了
jupyter notebook --allow-root --ip 0.0.0.0 --port 999 |
设置 jupyter 开机启动
systemctl 脚本目录:/usr/lib/systemd/
系统服务目录:/usr/lib/systemd/system/
用户服务目录:/usr/lib/systemd/system/
cd /usr/lib/systemd/system/ |
vim myjupyter.service |
[UNIT] |
vi /root/.jupyter/jupyter_notebook_config.py |
# Set ip to '*' to bind on all interfaces (ips) for the public server |
Notebook 支持虚拟运行环境
为了让 Jupyter Notebook 支持虚拟运行环境,需要在 Anaconda 里安装一个插件。
回到终端下面,用 C-c 退出目前正在运行的 Jupyter Notebook Server,然后执行:
conda install nb_conda |
再重新开启
Jupyter Notebook |
或者 (better)
安装 ipykernel
首先切换到想要在 jupyter notebook 里使用的虚拟环境:
conda activate 环境名称 |
安装 ipykernel:
conda install ipykernel |
写入 jupyter 的 kernel
在当前虚拟环境里执行:
python -m ipykernel install --user --name 环境名称 --display-name "Python (环境名称)" |
“环境名称” 为当前虚拟环境的名称,最后面引号内的字符串是该虚拟环境显示在 jupyter notebook 界面的名字,可以随意修改。
删除 kernel 环境
上面写入 kernel 的配置并不会随虚拟环境的删除而删除。也就是说即使删除了该虚拟环境,jupyter notebook 的界面上仍会有它的选项,只是无法正常使用。
此时就需要去手动删除 kernel 环境了:
jupyter kernelspec remove 环境名称 |
jupyter 中用 notedown 插件来读取 md 文档
pip install https://github.com/mli/notedown/tarball/master |
vi /root/.jupyter/jupyter_notebook_config.py |
c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager' |
Jupyter Notebook 自定义主题
安装好了 Jupyter Notebook 和 Python 之后,我们就已经搭建好啦运行和笔记环境,可以愉快的开始学习了。
于是本着爱折腾的精神和护眼的需求,我搜索了 Jupyter Notebook 的 themes,也就是自定义主题。果然 Github 上有人一早解决了这个问题。
# install jupyterthemes |
这时候,你就可以在 terminal 里面调用已经安装好的 themes 啦~
例如,在 terminal 中输入
jt -l |
就会返回所有你安装好的主题的名词列表,这样你就知道了你安装了哪些主题。
最终,我的选择是
jt -t chesterish -T -N |
表示我选择了 chesterish 这个主题,同时希望打开顶部的工具栏(Toolbar),显示笔记本的名字(Name)
Jupyter 扩展配置器( Jupyter NbExtensions Configurator)
可以通过 coda 安装:
conda install -c conda-forge jupyter_contrib_nbextensions |
也可以使用 pip 安装
pip install jupyter_nbextensions_configurator |
1. 标题折叠 Collapsible headings
当你在处理一个大型的 notebooks 时,这项扩展非常有用,它可以让你隐藏部分内容。
- 通知 Notify
当你长时间运行一个任务程序的时候,程序运行结束后,此扩展功能会自动提醒你。
如需使用此扩展,你需要勾选其对应得选择框,并点击
Notify
按钮来选择一个最短通知时间,即 notebook 最少持续运行多久后进行提醒。(需要注意的是,这个扩展只有在 notebook 被浏览器正常打开的情况下才能正常工作。)- 通知 Notify
- 代码折叠
Code folding
- 进度条
tqdm_notebook
tqdm 本质上不是一个 notebook 的扩展,它是 Python 中的一个进度条库。 但是此库有时在 jupyter notebooks 会无法正常工作。 Randy Olson 给出一个小小的提醒:
tqdm 是一个 Python 的进度条库,在 jupyter notebook 中则被称之为 “tqdm_notebook”。自从在 nootbook 中加入了 tqdm_notebook 扩展功能,你再也不用担心其引发的混乱问题了。 (Randy Olson 2018 年 3 月 2 日)
% debug 这个本质上也不是 notebook 的一个扩展,而是 IPython 中的一个魔法命令。为了加深你的理解,建议你读一读 Radek Osmulski 的发布 twitter 上的推文。
% debug 魔法命令
- 得到了一个异常
- 重新插入一个新的输入框,输入 % debug,然后运行它
交互式的调试方法可以打开并显示代码出现异常的语句,方便你联系前后程序查看具体情况。
(Radek 2017 年 12 月 26 日)
- 重新插入一个新的输入框,输入 % debug,然后运行它
- 其他小的拓展与技巧
% Ismagic :在输入框中运行这个命令,列出所有可用的 IPython 魔法命令
zen mode 扩展: 隐藏菜单栏,让你更专注于代码
Execute time 扩展:显示程序块运行的时间
autoreload:在不重启 notebook 的情况下,自动载入外部文件,从而修改代码,具体操作如下:
%load_ext autoreload
%autoreload 2
JUPYTER 服务的 NGINX 配置
jupyter 配置
配置文件在
/home/{user}/.jupyter/jupyter_notebook_config.py |
配置 jupyter 的路径
c.NotebookApp.base_url = '/jupyter/' |
nginx 配置
jupyter 使用了 websocket 协议,所以需要配置支持 websocket。
location /jupyter/ { |
jupyter notebook 用到了 websocket, 所以需要配置
proxy_set_header Upgrade $http_upgrade; |