Jupyter Lab/Notebook 安装在服务器上,并让其在后台运行
- 首先确保已经安装 Python3 和 pip 环境(服务器正常情况下已安装 Python3)
- 安装
jupyter
和 notebook
:
pip install jupyterlab
# 或
pip install jupyter notebook
- 生成配置文件:
jupyter lab --generate-config
# 或
jupyter notebook --generate-config
- 生成密码:
jupyter notebook password
# 再输入两次密码,确认新密码
- 启动服务:
jupyter lab
# 或
jupyter notebook
- 上述给出的网址,直接访问即可(注意更改 IP)。
扩展
假设服务端口设置为 20001,域名为 jupyter.idev.top。
修改 jupyter notebook 配置文件。
# 查看配置的路径
jupyter --config-dir
ls $(jupyter --config-dir)
# 配置的文件名
# 密码保存的位置
jupyter_notebook_config.json
# 配置文件
jupyter_notebook_config.py
jupyter_lab_config.py
或 jupyter_notebook_config.py
修改
# 启用 root 运行
c.ServerApp.allow_root = True
# 修改端口
c.ServerApp.port = 20001
# 设置可访问域名
c.ServerApp.allow_origin = 'jupyter.idev.top'
# 开启远程访问
c.ServerApp.allow_remote_access = True
# 设置运行的根目录
# ( jupyter_server: 1.23.4, notebook: 6.5.4 )
c.NotebookApp.notebook_dir = "/root/workspaces"
# ( jupyter_server: 2.8.0, notebook: 7.0.5 )
c.ServerApp.root_dir = "/root/workspaces"
# 不显示退出按钮(和 Shut Down 按钮)
# 或忽略不修改
c.ServerApp.quit_button = False
使 Nginx 作为服务器入口
nginx 配置文件内容如下:
# jupyter.conf
server {
...
server_name jupyter.idev.top;
...
location / {
proxy_pass http://127.0.0.1:20001;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 120s;
proxy_next_upstream error;
proxy_redirect off;
proxy_buffering off;
}
...
}
https 功能按正常的 nginx 配置流程和方法,在此不作说明。
使用 systemd 设置开机启动与后台运行
# /etc/systemd/system/jupyter.service
[Unit]
Description = Jupyter Notebook
[Service]
Type = simple
# WorkingDirectory = /root/workspaces
ExecStart = jupyter notebook
[Install]
WantedBy = multi-user.target
若不设置 WorkingDirectory
,则 jupyter 会使用用户根目录作为运行目录。建议设置。
启用,及设置后台运行。
systemctl daemon-reload
systemctl start jupyter
systemctl enable jupyter
记得每次修改配置文件时,必须重启。比如 systemctl restart nginx
(Nginx)
使用 python-venv 环境,避免污染系统 python 的环境(看似运行时,还是使用系统的 Python)
首先确认服务器已安装 python3-venv
,若未安装,则需手动安装 apt install python3-venv
(Debian 系)
# 创建服务
python3 -m venv ~/pyenvs/jupyter
# 依次安装环境
source ~/pyenvs/jupyter/bin/activate
# 安装 jupyter notebook
pip install jupyter notebook
systemd 的 jupyter.service 文件中,修改 python:
...
ExecStart = /root/pyenvs/jupyter/bin/python -m jupyter notebook
...
使用 conda 创建其它内核
# 更新 base 环境
conda update -n base -c defaults conda
conda create -n my-conda-env # creates new virtual env
conda activate my-conda-env # activate environment in terminal
conda install ipykernel # install Python kernel in new conda env
ipython kernel install --user --name=my-conda-env-kernel # configure Jupyter to use Python kernel
jupyter notebook # run jupyter from system
显示所有的 conda envs
# 在 base 环境中运行
conda install nb_conda_kernels
移除内核
# 查看所有内核
jupyter kernelspec list
# 卸载指定内核
jupyter kernelspec uninstall my-conda-env-kernel
安装内核
在指定的 venv 环境中运行。
pip install ipykernel
python -m ipykernel install --user --name=pytorch --display-name "PyTorch"