本页内容

  • 前置条件
  • 安装依赖项
  • 安装 Jupyter 创建 Python 虚拟环境 安装 Jupyter 配置 JupyterLab
  • 以 Systemd 服务方式运行 JupyterLab
  • 为 Jupyter 配置 Nginx 反向代理 允许远程访问 JupyterLab 安装并配置 Nginx 作为反向代理
  • 通过本地机器访问 JupyterLab 安装
  • 结语
  • 创建 Python 虚拟环境
  • 安装 Jupyter
  • 配置 JupyterLab
  • 允许远程访问 JupyterLab
  • 安装并配置 Nginx 作为反向代理

Jupyter 是一款免费且开源的 Web 应用程序,用于交互式计算和数据科学。Jupyter 支持所有编程语言,并提供多种软件,例如 JupyetrLab(提供功能丰富、带标签页的多笔记本编辑环境)、Notebook(轻量级简化笔记本创作工具)、Qtconsole 等。

在本指南中,我们将一步步带你完成在 Debian 12 上安装 JupyterLab 的过程。你将在 Python 虚拟环境中安装 JupyterLab,以 systemd 服务方式运行 JupyterLab,然后安装并配置 Nginx 作为 JupyterLab 的反向代理。

前置条件

开始之前,请确认你已具备以下条件:

  • 一台 Debian 12 服务器。
  • 一个具有管理员权限的非 root 用户。

安装依赖项

Jupyter 是一个免费的、开源的 Python 软件生态系统,可用于跨所有编程语言的交互式计算。要安装 Jupyter,你必须确保系统上已安装 Python。

在本节中,你将安装 Jupyter 的包依赖项,包括 Python3、Pip 包管理器、Python venv 虚拟环境以及 Node.js。

开始之前,请使用以下命令更新并刷新你的 Debian 软件包索引。

sudo apt update

在 Debian 12 上安装 JupyterLab 交互式笔记本

现在,通过执行以下 apt install 命令来安装依赖项。这样你将安装 Python3、Pip 包管理器、venv 虚拟环境管理工具以及 Node.js。

sudo apt install python3 python3-pip python3-venv nodejs

输入 y 确认并继续安装。

在 Debian 12 上安装 JupyterLab 交互式笔记本

依赖项安装完成后,执行以下命令检查每个依赖项的版本,包括 Python3、Pip 和 Node.js

python3 --version
pip3 --version
node --version

以下输出显示 Python 3.11、Pip 23 和 Node.js 18.13 已安装。

在 Debian 12 上安装 JupyterLab 交互式笔记本

安装 Jupyter

安装依赖项之后,接下来你将使用 Debian 12 机器上的 Python 虚拟环境安装 Jupyter 元包。为此,你必须完成以下步骤:

  • 创建 Python 虚拟环境
  • 安装 Jupyter
  • 配置 JupyterLab

我们开始吧。

创建 Python 虚拟环境

在本节中,你将创建一个新的 Python 虚拟环境,用于 Jupyter 的安装。采用这种方式,你将拥有一个不会影响整个系统的隔离开发环境。此外,随着时间推移你也可以重新创建它。

使用以下命令登录到你的非 root 用户。

su - user

现在创建一个新目录 ~/project 并进入该目录。然后,使用以下命令创建一个名为 venv 的新虚拟环境。执行该命令后,将创建新的 venv 目录。

mkdir -p ~/project; cd ~/project
python3 -m venv venv

接下来,运行以下命令以激活 venv 虚拟环境。激活后,你的 shell 提示符将变为类似“(venv) user@hostname:#...”的形式。

source venv/bin/activate

在 Debian 12 上安装 JupyterLab 交互式笔记本

安装 Jupyter

创建 Python 虚拟环境后,你将通过 Pip 安装 Jupyter 包。Jupyter 包是 Jupyter 生态系统的元包,包含 IPython、JupyterLab、Jupyter Server、Jupyter Notebook、qtconsole 等众多组件。

执行以下 pip3 命令,将 Jupyter 安装到你的 Debian 系统上。

pip3 install jupyter

安装过程中,终端将显示如下输出:

在 Debian 12 上安装 JupyterLab 交互式笔记本

安装完成后,使用以下命令检查 Jupyter 二进制文件的位置和版本。

which jupyter
jupyter --version

在以下输出中,你应该能看到 Jupyter 二进制文件位于 venv 目录内。同时,你应该能看到系统上已安装的 Jupyter 包的版本。

在 Debian 12 上安装 JupyterLab 交互式笔记本

配置 JupyterLab

JupyterLab 是 Jupyter 生态系统的新一代基于 Web 的用户界面。借助 JupyterLab,你可以在一个窗口中处理文档,以及 Jupyter Notebook、文本编辑器和终端等活动。JupyterLab 为你提供了类似 IDE 的体验,用于管理和开发 Jupyter 项目。

在本节中,你将为自己的 Jupyter 项目配置 JupyterLab。但在那之前,你必须先配置 Jupyter Server 以确保安装的安全性。

首先,运行以下命令生成 Jupyter Server 配置文件并设置密码。输入你的密码并重复确认。

jupyter server --generate-config
jupyter server password

执行该命令后,Jupyter Server 配置将生成在 ~/.jupyter/ 目录下。

在 Debian 12 上安装 JupyterLab 交互式笔记本

你可以使用以下命令查看 Jupyter Server 配置文件的内容。

jupyter server --show-config

将显示如下类似输出:

在 Debian 12 上安装 JupyterLab 交互式笔记本

接下来,运行以下命令为 JupyterLab 生成新配置。JupyterLab 配置将生成在 ~/.jupyter/ 目录下。

jupyter lab --generate-config

在 Debian 12 上安装 JupyterLab 交互式笔记本

配置生成后,使用以下命令验证 JupyterLab 配置。

jupyter lab --show-config

以下是 JupyterLab 配置的示例:

在 Debian 12 上安装 JupyterLab 交互式笔记本

现在你可以使用以下命令运行 JupyterLab。请务必将 IP 地址替换为你服务器的 IP 地址。

jupyter lab --ip 192.168.10.15

JupyterLab 将在你的服务器 IP 地址上以默认端口 8888 运行。可通过 URL 路径 /lab 访问 JupyterLab。

在 Debian 12 上安装 JupyterLab 交互式笔记本

打开你的 Web 浏览器,访问你的服务器 IP 地址,并附上端口 8888 和路径 /lab,例如 http://192.168.10.15:8888/lab。输入你的 Jupyter Server 密码,然后点击“Log in”继续。

在 Debian 12 上安装 JupyterLab 交互式笔记本

如果你输入的密码正确,你应该会看到如下的 JupyterLab 用户仪表盘:

在 Debian 12 上安装 JupyterLab 交互式笔记本

现在你可以按两次 Ctrl+c 来终止 JupyterLab 进程。

以 Systemd 服务方式运行 JupyterLab

在接下来的步骤中,你将创建一个新的 systemd 服务文件,用于运行 JupyterLab。这样,你的 JupyterLab 安装将作为 systemd 服务在后台运行,你可以通过 systemctl 工具轻松管理 JupyterLab。

使用以下 nano 编辑器命令创建新的 systemd 服务文件 /etc/systemd/system/jupyterlab.service。

sudo nano /etc/systemd/system/jupyterlab.service

插入以下配置,并务必将用户名 bob 替换为你自己的。

[Unit]
Description=JupyterLab Service
 
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/bob/project/venv/bin/jupyter lab --config=/home/bob/.jupyter/jupyter_lab_config.py
User=bob
Group=bob
WorkingDirectory=/home/bob/project
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target

完成后,保存并关闭文件。

现在运行以下 systemctl 命令以重新加载 systemd 管理器并应用更改。

sudo systemctl daemon-reload

然后,使用以下命令启动并启用 jupyterlab 服务。

sudo systemctl start jupyterlab
sudo systemctl enable jupyterlab

在 Debian 12 上安装 JupyterLab 交互式笔记本

最后,验证 jupyterlab 服务,确保该服务正在运行。

sudo systemctl status jupyterlab

以下输出确认 jupyterlab 服务正在运行。

在 Debian 12 上安装 JupyterLab 交互式笔记本

为 Jupyter 配置 Nginx 反向代理

在本指南中,你将使用 Nginx 作为反向代理来运行 JupyterLab。为此,你必须完成以下步骤:

  • 允许远程访问 JupyterLab
  • 安装并配置 Nginx 作为反向代理

允许远程访问 JupyterLab

默认情况下,JupyterLab 安装只能通过本地 IP 地址访问。要允许远程连接,你必须修改默认的 JupyterLab 配置。

使用以下 nano 编辑器命令打开 JupyterLab 配置文件 ~/.jupyter/jupyter_lab_config.py。

nano ~/.jupyter/jupyter_lab_config.py

取消注释选项 c.ServerApp.allow_remote_access,并将其值改为 True。这将使 JupyterLab 可从远程连接访问,包括在反向代理后面运行 JupyterLab 的情况。

c.ServerApp.allow_remote_access = True

完成后,保存文件并退出编辑器。

现在运行以下 systemctl 命令以重启 jupyterlab 服务并应用更改。

sudo systemctl restart jupyterlab

然后,使用以下命令验证 jupyterlab 服务。

sudo systemctl status jupyterlab

在输出的底部,你应该会看到用于访问你的 JupyterLab 安装的生成的 token,请务必复制它,用于下一节。

在 Debian 12 上安装 JupyterLab 交互式笔记本

安装并配置 Nginx 作为反向代理

在允许远程访问 JupyterLab 之后,接下来你将安装 Nginx 并将其配置为 JupyterLab 安装的反向代理。

通过执行以下 apt install 命令安装 Nginx。

sudo apt install nginx -y

以下是 Nginx 安装过程中的输出。

在 Debian 12 上安装 JupyterLab 交互式笔记本

Nginx 安装完成后,使用以下 nano 编辑器创建一个新的 server block 配置 /etc/nginx/sites-available/jupyterlab。

sudo nano /etc/nginx/sites-available/jupyterlab

插入以下配置,并务必将 server_name 选项中的域名替换为你自己的。

server {
    listen 80;
    server_name jupyterlab.howtoforge.local;
    
    access_log /var/log/nginx/howtoforge.local.access.log;
    error_log /var/log/nginx/howtoforge.local.error.log;
 
    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}

完成后,保存并退出文件。

现在运行以下命令以激活 server block 文件 /etc/nginx/sites-available/jupyterlab 并验证 Nginx 配置。

sudo ln -s /etc/nginx/sites-available/jupyterlab /etc/nginx/sites-enabled/
sudo nginx -t

如果 Nginx 语法正确,你应该会看到输出“syntax is ok - test is successful”。

在 Debian 12 上安装 JupyterLab 交互式笔记本

最后,运行以下 systemctl 命令以重启 nginx 服务并应用更改。然后验证它,确保该服务正在运行。

sudo systemctl restart nginx
sudo systemctl status nginx

如果 Nginx 正在运行,你应该会看到输出 active (running)。

通过本地机器访问 JupyterLab 安装

要通过域名访问 JupyterLab,Linux 客户端可以使用 /etc/hosts 文件,Windows 用户可以使用 C:\Windows\System32\drivers\etc\hosts 文件。

使用 nano 编辑器打开你 Linux 客户端上的 /etc/hosts 文件。

sudo nano /etc/hosts

将以下配置插入文件,并务必将 IP 地址和域名替换为你自己的信息。

192.168.10.15   jupyterlab.howtoforge.local

完成后,保存并退出文件。

接下来,打开你的 Web 浏览器,访问你 JupyterLab 安装的域名,例如 http://jupyterlab.howtoforge.local。如果安装成功,你应该会看到 JupyterLab 登录页面。

在页面底部,输入你 JupyterLab 安装所生成的密码和新密码。然后点击“Log in and set a new password”按钮。

在 Debian 12 上安装 JupyterLab 交互式笔记本

如果一切顺利,你应该会被重定向到如下的 JupyterLab 仪表盘。

至此,你的 JupyterLab 安装就完成了。

结语

通过完成这本步步指南,你已经在 Debian 12 服务器上成功安装了 JupyterLab。你使用 Python 虚拟环境安装了 JupyterLab,以 systemd 服务方式在后台运行 JupyterLab,并将 Nginx 配置为 JupyterLab 的反向代理。现在你可以创建并管理你的 Jupyter 项目了。