JupyterLab Server 搭建与使用笔记
两三个月前,有幸拿到了云筏的一个 4 核 16G,1TB硬盘,300M带宽位于欧洲的云服务器,自带的开箱即用的 RStudio Server 也非常给力,但最近这两天在升级 R 的时候遇上了不少问题,也懒得去折腾了,于是想把 RStudio Server 替换成自己比较熟悉的 JupyterLab Server,这是一些折腾的笔记记录。
JupyterLab is a next-generation web-based user interface for Project Jupyter. JupyterLab enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner.
1. 安装
JupyterLab 可以通过conda
,pip
,pipenv
ordocker
的方式安装。
# condaconda install -c conda-forge jupyterlab
# pippip install jupyterlab
nb_conda_kernels 是一个 Jupyter 的扩展功能(extension),可以管理多个 Conda 环境下的 Jupyter 核心(kernels),整合多 Conda 环境中各种不同版本的 Python 或 R 等语言。
1.1 安裝 nb_conda_kernels
nb_conda_kernels 必须安装在在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 环境中,可以直接放在 base
环境中,或是另外建立独立的 Conda 环境亦可。
这里我们建立一哥新的 Conda 环境,专门用于放置 JupyterLab:
# 建立 Conda 环境,并安裝 JupyterLabconda create --name jupyterlab python=3.7 jupyterlab
在此 Conda 环境加装 nb_conda_kernels 扩展功能套件:
# 安装 nb_conda_kernels 扩展功能套件conda install --name jupyterlab nb_conda_kernels
1.2 安装 Jupyter Kernels
所有需要在 Jupyter 中透过nb_conda_kernels
来使用 Conda 环境,都需要安装对应语言的的 Jupyter 核心(kernels)。
建立一个 Python 2.7 的 Conda 环境:
# 建立 Python 2.7 的 Conda 环境conda create --name Python2 python=2.7.18
# 安装 Python 的 Jupyter 核心conda install --name Python ipykernel
建立一个 R-4.0.2 的 Conda 环境:
# 建立 R 4.0.2 的 Conda 环境conda create --name R-4.0.2 --channel r r-essentials=4.0.2 r-base=4.0.2
# 安装 R 的 Jupyter 核心conda install --name R-4.0.2 --channel r r-irkernel
2. 启动
安装好所有的 Conda 环境以及对应的 Jupyter 核心之后,就可以依照一般的方式启动 JupyterLab:
# 载入 Jupyter 的 Conda 环境(下面两种方式都可以激活)$ conda activate jupyterlab $ source activate jupyterlab
# 启动 JupyterLab$ jupyter lab --ip 0.0.0.0 --port 9090
这样就可以在单一一个 JupyterLab 界面中同时使用不同 Conda 环境下的各种语言与版本了。
3. 配置远程访问
3.1 进入 ipython 环境,生成秘钥
假设你已经进入了 ipython 环境,参考下面的操作生成秘钥。
In [1]: from notebook.auth import passwdIn [2]: passwd()Enter password: #填写你的密码(用于访问jupyterlab的密码)Verify password: #再次填写你的密码Out[2]: 'argon2:$argon2id$v=19$m=10240,t=10,p=8$ShdM5...vHBHA$EUCjIE1L8joDbugmWIDqLw'#这是你的密码生成的密钥
3.2 生成 jupyterlab 配置文件
使用--generate-config
参数,生成 jupyterlab 配置文件。
$ jupyter lab --generate-configWriting default config to: /home/shenweiyan/.jupyter/jupyter_notebook_config.py
3.3 修改配置文件
JupyterLab 默认配置文件位于~/.jupyter/jupyter_notebook_config.py
。
更改内容如下:
# 将ip设置为*,允许任何IP访问c.NotebookApp.ip = '*'# 这里的密码填写上面生成的密钥c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$ShdM5...vHBHA$EUCjIE1L8joDbugmWIDqLw'# 禁止用host的浏览器打开jupyterc.NotebookApp.open_browser = False # 监听端口设置为8888或其他c.NotebookApp.port = 8888# 允许远程访问 c.NotebookApp.allow_remote_access = True
接下来输入jupyter lab
就可以启动 jupyter-lab 服务啦!
4. 域名配置
下面是 JupyterLab 通过 nginx 转发的一个示例。
upstream jupyter { server 127.0.0.1:9090;}
server { listen 80; server_name jupyter.bioitee.com; rewrite ^/(.*) https://jupyter.bioitee.com/$1 permanent;}
server{ listen 443 ssl; index index.html index.htm index.php default.html default.htm default.php; server_name jupyter.bioitee.com; root /data/apps/jupyterlab/notebooks; ssl_certificate ../certs/4564529_jupyter.bioitee.com.pem; ssl_certificate_key ../certs/4564529_jupyter.bioitee.com.key; ssl_ciphers "EECDH CHACHA20:EECDH CHACHA20-draft:EECDH AES128:RSA AES128:EECDH AES256:RSA AES256:EECDH 3DES:RSA 3DES:!MD5"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; location / { proxy_pass http://jupyter; proxy_set_header Host $host; } location ~ /api/kernels/ { proxy_pass http://jupyter; proxy_set_header Host $host; # websocket support proxy_http_version 1.1; proxy_set_header Upgrade "websocket"; proxy_set_header Connection "Upgrade"; proxy_read_timeout 86400; } location ~ /terminals/ { proxy_pass http://jupyter; proxy_set_header Host $host; # websocket support proxy_http_version 1.1; proxy_set_header Upgrade "websocket"; proxy_set_header Connection "Upgrade"; proxy_read_timeout 86400; }
access_log logs/jupyterlab_acc.log; error_log logs/jupyterlab_err.log;}
5. 遇到的问题
jupyter lab 启动的过程中,如果使用
--config=~/.jupyter/jupyter_notebook_config.py
作为启动参数之一,会导致其他的 Conda 环境在 web 端消失,只剩下一个 Python 3 的 Notebook 和 Console,具体原因目前没搞明白。jupyter lab --generate-config
默认生成的配置文件位于~/.jupyter/jupyter_notebook_config.py
,目前不太清楚如何更改这个默认配置文件的路径。
往期文章回顾
六大云端 Jupyter Notebook 平台测评
- 数据科学工具 Jupyter Notebook 教程(二)
- 数据科学工具 Jupyter Notebook 教程(一)
- 使用 conda 和 Jupyter 在 R 中实现数据科学分析
- 基于 python3+nginx 的 Jupyter Notebook 服务端 ssl 访问
- 使用 conda 和 Jupyter 创建你的自定义 R 包,转换笔记为幻灯片
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
JupyterLab Server 搭建与使用笔记相关推荐
- raspberry ubuntu 修改源为清华_Ubuntu 下 Janus Server 搭建笔记
1 Ubuntu 下 Janus Server 搭建笔记 QQ交流群 782508536 FFmpeg/WebRTC/RTMP音视频流媒体高级开发 https://ke.qq.com/course/4 ...
- Ubuntu 下 Janus Server 搭建笔记
1 简介 Janus 是一个开源的,通过 C 语言实现了对 WebRTC 支持的 Gateway:Janus 自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 ...
- Node.js Git Server搭建及Git常用操作笔记
Node.js Git Server搭建及Git常用操作笔记 安装Git工具即可在本地进行Git仓库的管理,如果要实现远程仓库则需要搭建Git Server.通过Node.js搭建Git Server ...
- 环境搭建--谷粒商城笔记一
环境搭建–谷粒商城笔记一 由于vagrant与virtualbox搭建linux不成功,所以我选择VMware搭建centos7系统 centos7阿里云镜像下载 VMware安装centos7 修改 ...
- Lync server 2013 之office web apps server 搭建步骤
office web apps server 搭建步骤: 一. .NET Framework 4.5 节点下的HTTP 激活 .NET Framework 3.5 Windows Identity F ...
- TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...
- Ubuntu 12.04 Server 搭建DNS服务器
这边简单介绍一下,在Ubuntu 12.04 Server 搭建简单的DNS 服务器 #apt-get -y install bind9 bind9utils 这里我以 hasee.com 域名为例 ...
- windows 下使用 Filezilla server 搭建 ftp 服务器
windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows https:/ ...
- Vue学习(常用实例、脚手架搭建)-学习笔记
文章目录 Vue学习(常用实例.脚手架搭建)-学习笔记 实例1 法1 法2 实例2 脚手架搭建 vue-cli2.0 vue-cli4.0 Vue学习(常用实例.脚手架搭建)-学习笔记 附加:阿里巴巴 ...
最新文章
- 为什么,AX中存储的数据与我们日常理解相违背。
- 让FX1.1的NotifyIcon支持BalloonTip(1)
- SharePoint中修改密码的WEB Part之终极版:即可以修改AD,又可以修改本机用户密码的Web Part!!...
- 【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
- leetcode202(Floyd判圈算法(龟兔赛跑算法))
- 概述---《TCP/IP协议》卷一 练习题
- windows2016服务器优化,Windows Server 2012 服务器优化图文方法
- net start mysql 服务名无效_记一次服务器被植入挖矿木马cpu飙升200%解决过程
- Java高级语法笔记-语法支持的异常
- UISC-User Interface States Control ;Murphy 用户界面状态控制(Beta)
- native关键字(涉及本地方法栈)
- C语言Register关键字:利用寄存器提升访问效率
- Servlet与JSP项目实战 — 博客系统(上)
- atitit 研发管理 要不要自己做引擎自己实现架构?.docx
- Particle Designer:粒子效果制作器,生成plist文件并在工程中正常使用
- 狂团KtAdmin框架正式免费开源发布,助力独立版SAAS系统快速开发
- 路由及路由器工作原理深入解析3:路由与端口
- 第十一届蓝桥杯大赛决赛赛题 C++ 大学C组
- c语言实现 自动访问网址,使用C语言实现网站开发
- 农产品销售系统的设计与实现