![44859a9d9d206b3e7754232a31abff8c.png](https://i-blog.csdnimg.cn/blog_migrate/81eeb46d5b9d9c80c24a1fe2beabf61d.png)
[toc]
简介
- 最开始的时候Jupyter指的就是Jupyter Notebook,后来Jupyter公司出了Jupyter Lab,所以本文用notebook表示Jupyter Notebook, 用Lab表示Jupyter Lab。
- 关于两者的介绍,网上很多资料,这里就不再介绍了。总的而言,两者是一家,lab是notebook的加强版,lab包含了notebook的所有功能,lab集成更强,可多个文档一起操作,还添加插件功能,使用起来更方便。
- 一般而言,服务器的配置会比个人电脑好些,所以能远程访问服务器的jupyter就可以不用本地和服务器两边切换,还能使用服务器的计算资源(尤其对于大数据而言)。
![aafac21a60f5f35664bc911dda98b90b.png](https://i-blog.csdnimg.cn/blog_migrate/7511ca5a0fb90b6a418ccae63cd9fdba.png)
[图片来自参考1,侵删]
本地使用
安装
如果安装anaconda,就已经安装了jupyter,可以直接使用。只是版本可能会旧些。
jupyter notebook安装
## pip 安装
pip install notebook
## conda安装
conda install -c conda-forge notebook
jupyter lab安装
## 安装jupyterlab
pip install jupyterlab
或者
conda install -c conda-forge jupyterlab
## 安装依赖关系(npm, nodejs)
pip install npm
conda install -c conda-forge nodejs
启动使用
如果是本地安装的话,安装完即可启动使用。在终端直接输入命令即可启动。
## 启动notebook
jupyter notebook
## 启动lab
jupyter lab
远程使用(非root)
安装
安装步骤跟本地安装差不多。
远程服务器配置
生成jupyter密码密文
密文生成有手动生成和自动生成两种方式。自动生成会保存在json文件中。手动生成在ipython中运行直接输出。 密码用于本地访问服务器jupyter时需要输入的密码。
自动生成
$ jupyter notebook password
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to /home/you/.jupyter/jupyter_notebook_config.json
手动生成
## 打开ipython,输入
from IPython.lib import passwd
passwd()
## 提示输入密码和确认输入,完成后得到密文。
Enter password:
Verify password:
'sha1:********************************************'
## 或者
from notebook.auth import passwd; passwd()
配置
生成密文后,有两种设置方式,访问jupyter。一种是修改配置文件,另一种为通过ssh启动。
方式一:修改配置文件
- 生成配置文件 默认保存:
~/.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config
或
jupyter lab --generate-config
- 修改配置文件 需要修改主要是四个地方,分别是IP地址,密文,浏览器,端口。
## 打开前面生成的配置文件
vim ~/.jupyter/jupyter_notebook_config.py
## 修改配置内容
## 官方文档建议修改成‘*’,但可能还是无法访问,可以修改成‘0.0.0.1’或者服务器IP
c.NotebookApp.ip='*'
## 修改成将之前生成的密文
c.NotebookApp.password = u'sha1:........'
c.NotebookApp.open_browser = False
## 随便都可以,防止与其他端口冲突即可。也可以再启动jupyter时,用--port参数指定。
c.NotebookApp.port =8889
以上算是完成服务器的配置,可以在本地进行访问。
- 远程访问 启动jupyter,会弹出提示信息
[I 16:54:05.861 LabApp] Jupyter Notebook 6.1.0 is running at:
[I 16:54:05.861 LabApp] http://address_of_remote:8889/ ## address_of_remote为具体的IP
按照要求,在本地浏览器输入http://address_of_remote:8889
,输入登录密码即可访问jupyter。但可能由于防火墙的问题,仍然无法访问。这时候需要本地使用ssh启动。
方式二:ssh启动
- 启动jupyter
前面生成密文json格式后,不需要生成设置文件,直接启动jupyter。这种方式启动需要添加两个关键参数-no-browser
和--port
,分布设定浏览器和端口。
## 启动notebook
jupyter notebook --no-browser --port=8889
## 启动lab
jupyter lab --no-browser --port=8889
启动jupyter,会弹出提示信息
[I 16:54:05.861 LabApp] Jupyter Notebook 6.1.0 is running at:
[I 16:54:05.861 LabApp] http://localhost:8888
- 启动ssh 本地终端启动ssh,使用
localhost:8888
替换服务器的localhost:8889
## name@IP替换成具体的用户名及IP地址,之后输入服务器登录密码即可。
ssh -N -f -L localhost:8888:localhost:8889 name@IP
- 远程访问 本地浏览器输入
http://localhost:8888/
,输入jupyter登录密码即可使用。
Kernel
数据分析Python和R经常都会使用到,Jupyter可以同时操作python和R,非常方便相互切换,需要安装R kernel才能运行r的代码。另外,虽然jupyter主要是交互式操作,但有时也想对代码进行调试,这时候可以借助lab的插件debugger,但这个工具暂时只能用xeus-python。
R kernel
R安装
## conda安装
conda install -c r r=3.6
## conda创建虚拟环境安装
conda create -n r36 r=3.6
## 安装后可以打开r进行安装程序包,也可以直接安装基础包
conda install -c r r-essentials
添加R kernel
## 打开R,进入交互式
## 安装devtools,用于在github下载安装包
install.packages("devtools")
## 下载IRkernel
devtools::install_github("IRkernel/IRkernel")
## 提示jupyter R kernel路径
IRkernel::installspec()
打开jupyter lab可以看到已经添加成功。
![13863878b52c8b03dbcc810f3d1373eb.png](https://i-blog.csdnimg.cn/blog_migrate/04298e667c058d1b81021fdff55cb65e.png)
xeus-python
debugger
debugger插件安装需要安装插件以及xeus-python。插件搜索安装或命令安装,xeus-python使用conda安装。
## 使用conda快速安装
conda install -c conda-forge xeus-python
安装完成后,重启jupyter可以看到添加成功。点击即可进入调试界面。
![1d3715097e9268fe013b6fe05623bfc1.png](https://i-blog.csdnimg.cn/blog_migrate/cafee4b46e2ac4ebde76906330aa8e7b.png)
![cf6f127b008769ca6dd6bdf0ee4c46e7.png](https://i-blog.csdnimg.cn/blog_migrate/c9a2034409103ae6568dfd0f36bfb063.jpeg)
lab插件
jupyter lab可以使用插件功能,这些插件大多数来自第三方,功能强大,使得lab用起来更加方便。安装教程及推荐可以参考[6]。修改完设置后就可以通过搜索插件进行安装,也可以jupyter命令来安装。
注意项
- 假设密文json文件和配置文件同时存在,配置文件参数优先。如果两个文件密文不一致,密文以json优先。
- 修改配置文件时,需要把注释#号去掉。
- 本地浏览器访问失效时,需要重新启动ssh。
p.s. 如有错误请批评指正,谢谢(* ̄︶ ̄)
参考
[1]. 神器 | JupyterLab,极其强大的下一代notebook! [2]. 远程访问jupyter notebook [3]. 通过SSH远程使用jupyter notebook [4]. 利器|JupyterLab 数据分析必备IDE完全指南 [5]. 厉害了!Python编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具! [6]. 15个好用到爆炸的Jupyter Lab插件