JupyterLab安装使用

JupyterLab是一个基于Web的文档编辑工具,可以用来编辑Jupyter Notebook、文本文件、Markdown等,其具有丰富的功能,而且可以通过安装插件来扩展其功能。JupyertLab可以部署到服务器,在任意设备使用JupyterLab服务,可以将Notebook转换为HTML、Markdown、PDF、Latex等多种文件格式,而且还可以制作PPT,方便的展示编写的代码。

JupyterLab是一个基于Web的文档编辑工具,可以用来编辑Jupyter Notebook、文本文件、Markdown等,其具有丰富的功能,而且可以通过安装插件来扩展其功能。JupyertLab可以部署到服务器,在任意设备使用JupyterLab服务,可以将Notebook转换为HTML、Markdown、PDF、Latex等多种文件格式,而且还可以制作PPT,方便的展示编写的代码。

[toc]

安装及使用

JupyterLab可是使用conda,pip,pipenv,docker安装。 本文使用pip安装:

pip3 install jupyterlab

输入jupyter lab即可启动Jupyter Lab并自动打开浏览器(推荐使用Firefox浏览器) ubuntu上如果出现找不到jupyter命令的情况,尝试注销账户后重新登陆

配置

生成并修改配置文件使其可以在远程访问。

jupyter lab --generate-config生成一个配置文件,记下输出的配置文件地址(通常是.jupyter/jupyter_lab_config.py),相关设置都可以在里面进行修改。

设置密码:

# 使用下面命令设置密码
jupyter lab password
#输入两次密码后完成,密码会加密后保存在.jupyter/jupyter_server_config.json #该文件中的设置的密码优先于.py文件中的设置
>>> from jupyter_server.auth import passwd; passwd()
'sha1:60649f10478f:d9c610c97d296d3ad7120a4efc2c80a3b27fb25f'
>>> from notebook.auth import passwd # notebook
>>> passwd()
Enter password:
Verify password:
'argon2:$argon2id$v=19$m=10240,t=10,p=8$k/pZH0D2KcEFW+8MZYtaSg$IrfMVJ//b2NZwykcjdHh9w'
# 在这里输入想要设置的登录JupyterLab 的密码 然后会有一串输出,复制下来,等会配置需要使用

找到配置文件中下面这几行条目,取消注释并修改:

# 允许以root方式运行jupyterlab
c.NotebookApp.allow_root = True
# 允许任意ip段访问
c.NotebookApp.ip = '0.0.0.0'
# 设置jupyterlab页面的根目录
c.NotebookApp.notebook_dir = u'/root/JupyterLab'
# 默认运行时不启动浏览器
c.NotebookApp.open_browser = False 
# 设置之前生产的哈希密码
c.NotebookApp.password = u'sha1:60649f10478f:d9c610c97d296d3ad7120a4efc2c80a3b27fb25f' # 上面生成的密码sha1
# 设置访问端口
c.NotebookApp.port = 8080
# 启用mathjax
c.NotebookApp.enable_mathjax = True

使用 HTTPS

申请好证书后,修改配置文件即可:~/.jupyter/jupyter_notebook_config.py

# Path to the certificate 
c.NotebookApp.certfile = '/etc/letsencrypt/live/example.com/fullchain.pem' 
# Path to the certificate key we generated
c.NotebookApp.keyfile = '/etc/letsencrypt/live/example.com/privkey.pem' 
# Serve the notebooks for all IP addresses
c.NotebookApp.ip = '0.0.0.0'

注意这里配置号https后,只能使用http无法访问,如有需要可使用Nginx/Caddy,强制将http转到https。另外,在使用反向代理时,代理服务器也需要使用https,否则可能会出现正确输入密码却不能登陆的问题。

Notebook的使用

Magic Code

以下摘自码农网 IPython的一些特殊命令(不是内置于 Python 本身)被称为“魔术”命令。魔术命令是以百分号%为前缀的任何命令。

%matplotlib 最常用的魔法命令,大概就是 %matplotlib [10] 了。它用于指定 matplotlib 的后端(backend)。通常我们使用: %matplotlib inline 代表使用 inline作为后端,直接在 Notebook 中内嵌图片,并且可以省略掉 plt.show() 这一步骤。 %timeit 函数检查任何 Python 语句的执行时间 你可以使用%run命令,在Notebook中运行任意的Python文件。例如: %run add.py 还有其他一些常用命令,例如 %debug%load_ext%pwd等。

使用系统命令

在cell中!command可以调用系统命令如!ls查看当前目录。

conda多环境

Notebook若需要使用conda虚拟环境,需要在虚拟环境内安装ipykernel和jupyter_condaconda install ipykernel,conda install -c conda-forge jupyter_conda

然后使用python -m ipykernel install --user --name env-name --display-name "display-name"创建kernel,--user仅为用户创建kernel,--name虚拟环境的名字,--display-namenotebook中显示的名字,不指定的话与虚拟环境同名。

kernel的查看与删除

# 查看已有kernel
jupyter kernelspec list
# name        path
#  py         /jupyter/kernels/py
#  ir         /jupyter/kernels/ir
#删除名为py的kernel,也可直接删除对应目录
jupyter kernelspec remove py

制作PPT

使用JupyterLab可以轻松的制作网页版PPT。
首先选中cell在左侧Notebook Tools选项中设置幻灯片类型(Slide Type)
JSBVxI.png

有五种类型可选:

  • slide:一张新的幻灯片
  • subslide:向下滑动的幻灯片
  • fragment:一个片段,类似PPT的动画
  • skip:不显示
  • notes:备注 设置完成后,可以从File - Export Notebook As - Export Notebook to Reveal.js Slides导出HTML文件,或者使用命令jupyter nbconvert foo.ipynb --to slides 命令jupyter nbconvert foo.ipynb --to slides --post serve会将Notebook转换为HTML文件,并从发布到本地服务器(如下图)。 JSfbdA.png

插件

JupyterLab 的插件是 npm 安装包。所以按照 JupyterLab 的插件,需要提前按照好 Node.js。 conda install -c conda-forge nodejs
如果jupyterlab是通过conda安装的使用conda安装nodejs后就可以直接使用jupyter labextension install ext-name安装插件了;
我设备上jupyterlab是使用apt安装的,在安装插件时会使用系统环境的nodejs,因此还需要在系统环境中使用apt安装nodejs和npm

查看已安装插件:jupyter labextension list
更新已安装插件:jupyter labextension update --all
菜单栏:setting->Enables extension manager启用插件管理,就可以在左侧工具栏看到插件图标,在这里可以安装、卸载管理插件。
jupyterlab-toc–生成目录:jupyter labextension install @jupyterlab/toc
Jupyterlab_voyager:Voyager是一种数据可视化工具,可以自动和手动的生成图表。用来查看数据的基本分布信息,十分方便。jupyter labextension install jupyterlab_voyager
Jupyterlab-drawio 是一个在绘图插件,它将drawio / mxgraph独立集成到了 jupyterlab 中。:jupyter labextension install jupyterlab-drawio
lab 交互控件 jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter_conda在jupyterlab中管理conda

插件列表

其他语言支持

  1. R语言
    CRAN中现在有这个包
    install.packages('IRkernel') # 安装IRkernel包
    IRkernel::installspec()  # 注册当前R安装的内核使jupyterlab能够识别
    

参考

  1. 官方教程
  2. 云服务器搭建神器JupyterLab(多图)
  3. [利器 JupyterLab 数据分析必备IDE完全指南 - 知乎](https://zhuanlan.zhihu.com/p/67959768)
  4. Installing and Running Jupyter Notebooks on a Server - Parametric Thoughts