Jupyter Notebook

注意事项:

  • jupyter中想要添加ROOT C++的notebook需要ROOT6及以上版本。

  • 测试发现,ROOT6.12.06版本在创建ROOT C++的notebook在编写时会有bug,网页卡死、报错、jupyter内核卡死,更换ROOT6.16.00版本后正常。

  • 建议用google浏览器。

  • 北京大学李智焕老师核物理实验方法以及数据分析课程中有关jupyter启动教程适用于服务器。在服务器中键入jupyter notebook没有ROOT C++,输入root - - notebook才会出现ROOT C++。

    • 原因是服务器中使用的是module load方法加载的root软件,改用source path/root/bin/thisroot.sh后则可用jupyter notebook启用ROOT C++;

Jupyter Notebook安装

安装与配置具体可参考网页:https://blog.csdn.net/xushu_me/article/details/104066613

以下为简要安装步骤:

  • 1 安装Python2或者Python3(此处以Python3为例说明);
    • yum install python3
    • python3 --version
  • 2 安装Python的包管理器pip;
    • python3 -m pip install --upgrade pip
    • pip install jupyter metakernel zmq 或者pip3 install jupyter metakernel zmq
    • pip install Markdown 或者 pip3 install Markdown
  • 3 使用pip安装Jupyter以及所需的IPython;
    • pip3 install jupyter
    • pip3 install ipython

Jupyter Notebook配置

创建配置文件并修改

  • 1 创建jupyter_notebook_config.py (如果早期安装好,该文件已经存在,跳过此步骤);
    • jupyter notebook --generate-config
  • 2 打开并修改jupyter_notebook_config.py;
    • vim ~/.jupyter/jupyter_notebook_config.py

Jupyter更改默认浏览器

  • 1 查看浏览器位置(以google-chrome为例子);
    • which google-chorme后会显示/usr/bin/google-chrome
  • 2 在jupyter_notebook_config.py中找到# c.NotebookApp.browser = ''命令行,将第3步的地址添加进去;
    • c.NotebookApp.browser = '/usr/bin/google-chrome'

设置密码

  • 1 进入python
    • ipython
  • 2 键入本条命令
    • from notebook.auth import passwd
  • 3 键入本条命令
    • passwd()
  • 4 键入密码
    • Enter password:
  • 5 确认密码
    • verify password:
  • 6 输出密钥
    • Out:'...................................................'
  • 7 修改jupyter_notebook_config.py中对应文件
    • c.NotebookApp.password =u'sha1:……'

其他设置

  • 1设置访问IP,*代表任意IP,注释掉以主机名访问,多用于本地访问;
    • c.NotebookApp.ip = "*"
  • 2 是(True)否(False)网页自动打开,服务器一般用False,个人用户用True;
    • c.NotebookApp.open_browser = False`
  • 3 设置jupyter访问端口,与防火墙相关;
    • c.NotebookApp.port = 8888
  • 4 设置运行时的目录,即打开jupyter默认所在路径;
    • c.NotebookApp.notebook_dir = '/Your/Directory'

jupyter添加Content

  • 添加nbextensions插件
    • pip3 install jupyter_contrib_nbextensions
  • 配置nbextensions插件
    • jupyter contrib nbextension install --user
  • 进入jupyter打开Nbextensions选项卡,勾选“Table of Contents”

防火墙端口设置

  • 查看防火墙当前状态和所有的服务状态
    • firewall-cmd --list-all
  • 查看已经被允许的服务
    • firewall-cmd --list-services
  • 查看防火墙是否开启了某个端口
    • firewall-cmd --query-port=8888/tcp
  • 开启端口
    • firewall-cmd --zone=public --add-port=8888/tcp --permanent
  • 关闭端口
    • firewall-cmd --remove-port=8888/tcp --permanent
  • 重启防火墙(执行开启关闭操作后需要重启,切记)
    • firewall-cmd --reload

Markerdown语法说明

Markdown中公式编辑教程

ERROR

Error1

  • 输出‘OSError: [Errno 99] Cannot assign requested address’
    • 解决办法:IP或者端口配置错误。

Error2

  • 给定了端口依然无法打开。
    • 解决办法:防火墙原因,端口被锁死,需要查看防火墙端口设置。

Error3

  • Config option 'template_path' not recognized by 'ExporterCollapsibleHeadings'. Did you mean one of: 'extra_template_paths, template_name, template_paths`?
    • 解决办法:pip3 install nbconvert==5.6.1

Error4

  • 加载插件 voila.server_extension 失败
    • 解决办法:pip3 install voila

说明:

  • Error3和Error4是相依的,当安装voila时,会自动升级nbconvert到6.0.1;而当nbconvet降级安装到5.6.1时,voila则无法启动;
    • 解决办法:pip3 install voila==0.1.9
  • Error3和Error4与jupyter添加Content有关

Error5

  • 输出ModuleNotFoundError: No module named 'metakernel'
    • 解决办法:pip install jupyter metakernel zm

Error6

Error7

  • 警告诸如:'notebook_dir' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
    • 解决办法:pip uninstall jupyterlab
In [2]:
!jupyter nbconvert readme_jupyter.ipynb --to html
[NbConvertApp] Converting notebook readme_jupyter.ipynb to html

[NbConvertApp] Writing 286828 bytes to readme_jupyter.html

In [ ]: