一键三连!为 Python | R | JS 搭建 JupyterLab

JupyterLab 是 Jupyter 主打的最新数据科学生产工具,是基于 Web 的交互式开发环境。某种意义上,它的出现是为了取代 Jupyter Notebook,但它也包含了 Jupyter Notebook 的所有功能,非常方便研究和教学。 JupyterLab 的用途非常灵活,可支持数据清理和转换、统计建模、数据科学、科学计算和机器学习领域的广泛工作。

安装 JupyterLab

Ubuntu 18+ 默认已经集成了 Python 3.6 以上版本,保险起见先查看一下 Python 版本是否符合 JupyterLab 的要求:

1
python3 --version

安装 Miniconda

首先更新已安装的软件包至最新版本

1
sudo apt update && sudo apt upgrade

接下来使用清华源安装 Miniconda:

1
2
3
4
5
cd    //回到默认的 $home 目录
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh
bash Miniconda3-py39_4.12.0-Linux-x86_64.sh
source ~/.bashrc
conda --v

如果正常安装完成,应该能够正常显示 conda 版本。

后面需要使用 vim 文本编辑器编辑一些配置文件,让我们先来熟悉一下 vim 的基本操作:

vim 使用小贴士

1
2
3
4
5
6
7
vim filename -- 使用 vim 打开文件
h j k l -- 移动光标位置
i -- 在当前光标位置插入
q -- 退出编辑模式
wq -- 保存并退出
q -- 退出
q! -- 退出不保存

了解了 vim 的基本使用,接下来我们将 conda 和 Python 的源切换为清华:

1
vim ~/.condarc    //使用 vim 创建 conda 配置文件

接下来向 .condarc 文件中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

之后需要运行 conda clean -i 清除索引缓存,保证使用清华源。

接下来将 pip 也更换为使用清华源:

1
2
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装和配置 JupyterLab

首先确认位于 Miniconda 的 base 环境内,确认方式是看终端前面是否显示有 (base),如果没有,执行一下 conda activate base,之后使用 conda install jupyterlab 安装 JupyterLab。

完成安装后,需要提前为 JupyterLab 准备一个密码,进入 Python 环境:

1
2
3
4
5
6
python    // 进入 Python 环境

>>> from notebook.auth import passwd
>>> passwd() # 两次输入自己要设置的密码,得到下面的加密字符串,保存下来
'argon2$……'
>>> quit() # 退出 Python 环境

接下来使用 jupyter lab --generate-config 创建配置文件,使用 vim ~/.jupyter/jupyter_lab_config.py 打开配置文件,进行如下编辑:

1
2
3
4
5
6
7
c.ServerApp.allow_origin = '*'          // 允许远程地址
c.ServerApp.allow_remote_access = True // 允许远程访问
c.ServerApp.ip = '0.0.0.0' // 监听服务地址
c.ServerApp.notebook_dir = '/home/ubuntu/workspace' // 项目默认目录
c.ServerApp.password = 'xxxxxx' // 刚生成的类似 'argon2:...' 的加密字符串
c.ServerApp.open_browser = False // 启动服务时不弹出浏览器
c.ServerApp.port = 8080 // 服务端口号

Congratulations! 现在你可以使用 jupyter lab 命令启动 JupyterLab,通过 IP:8080 来访问你的服务了!

汉化、安装插件管理器和常用包

1
2
3
conda install -c conda-forge jupyter_contrib_nbextensions  // 安装插件管理器
pip install jupyterlab-language-pack-zh-CN // 安装中文语言包
pip install numpy conda pandas scipy matplotlib // 常用数学统计库

至此,已经完成了 JupyterLab 环境的搭建,并且可以用其进行 Python 开发了!

为 JupyterLab 添加系统服务

使用 sudo vim /etc/systemd/system/jupyter.service 命令,新建 jupyter.service 文件并添加如下内容(其中 ExecStart、User、Group、WorkingDirectory 等参数需要根据自己配置做修改,需要使用 mkdir /home/ubuntu/workspace 命令提前建立工作目录):

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Jupyterlab
After=network.target
[Service]
Type=simple
ExecStart=/home/ubuntu/miniconda3/bin/jupyter-lab --config=/home/ubuntu/.jupyter/jupyter_lab_config.py --no-browser
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/workspace
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

设置开机启动,及其他控制命令:

1
2
3
4
sudo systemctl enable jupyter    // 开机自启
sudo systemctl start jupyter // 启动
sudo systemctl stop juppyter // 停止
sudo systemclt restart jupyter // 重启

为 JupyterLab 添加 R 支持

安装 R-base

1
2
3
4
5
6
7
8
// 安装两个帮助包
sudo apt install --no-install-recommends software-properties-common dirmngr
// 添加签名 key
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
// 加入 R 4.0 源,这里使用的也是清华的 CRAN 源
sudo add-apt-repository "https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
// 安装 r-base
sudo apt install r-base r-cran-devtools

在 R 中安装 devtools 并激活内核

使用 sudo -i R 以 root 身份进入 R,之后在 R 内运行以下命令:

1
2
3
4
install.packages('devtools')                      # 安装 devtools
devtools::install_github('IRkernel/IRkernel') # 安装 R kernel
IRkernel::installspec() # 注册 R kernel
q() # 退出 R 环境

至此,JupyterLab 已经可以支持和使用 R 内核。

为 JupyterLab 添加 Javascript 支持

安装 nodejs 及 npm

1
2
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

查看一下 nodejs 和 npm 版本,node --version && npm --version,如果能够正常显示版本号,则意味着安装成功。

安装 ijs 并激活内核

接下来使用这个命令 npm i -g ijavascript --registry=https://registry.npm.taobao.org 安装 ijs 包,使用命令 ijsinstall 完成内核的激活。


一键三连!为 Python | R | JS 搭建 JupyterLab
https://blog.yuhaogao.com/2022/10/08/一键三连!为-Python-R-JS-搭建-JupyterLab/
作者
Cosmo
发布于
2022年10月8日
许可协议