系统、Hub 和用户环境#

TLJH 的文档提到了系统环境Hub 环境用户环境。本节将介绍这些概念的含义,并阐明不同环境之间的区别。

系统环境#

当本文档提到系统环境时,它指的是 Linux 环境,包括其安装的 apt 包、/etc/passwd 中的用户等。

系统环境的一部分是通过 aptpython 设置的 Python 环境,该包默认安装在 TLJH 支持的 Linux 发行版中。更准确地说,我们可以将其称为系统的 Python 环境

如果您执行 sudo python3 -m pip install <something>,您将最终在系统的 Python 环境中安装某些东西,而这在 Hub 环境或用户环境中将不可用。

系统的 Python 环境仅由 TLJH 用于运行作为安装或升级 TLJH 的一部分下载的 bootstrap.py 脚本。该脚本还负责设置 Hub 环境。

Hub 环境#

Hub 环境是在 /opt/tljh/hub 中设置的 虚拟 Python 环境,由 bootstrap.py 脚本在 TLJH 安装期间使用系统的 Python 环境创建。

Hub 环境中安装了与运行 JupyterHub 本身相关的 Python 包,例如 JupyterHub 身份验证器包,但它不包括启动用户服务器(如 JupyterLab)的包。

当 TLJH 安装/升级时,tljh/requirements-hub-env.txt 中列出的包将在该环境中安装/升级。

如果您执行 sudo /opt/tljh/hub/bin/python3 -m pip install <something>,您将最终在 Hub 环境中安装某些东西,而这在系统的 Python 环境或用户环境中将不可用。

用户环境#

用户环境是在 /opt/tljh/user 中设置的 Python 环境,由 TLJH 安装程序在 TLJH 安装期间创建。用户环境不是虚拟环境,因为它拥有一个完全独立的 Python 安装。

用户环境中安装了与运行单个 Jupyter 服务器相关的包,例如 jupyterlab

当 TLJH 安装 时,[tljh/requirements-user-env.txt] 中列出的软件包将安装在此环境中。但是,当 TLJH 升级 时,此环境的更改尽可能少。通常,只有 jupyterhub 会升级以匹配集线器环境中的版本。如果升级到 TLJH 的新主版本,则除了此之外可能还会进行一些小的更改,然后应在更改日志中进行描述。

如果您执行 sudo /opt/tljh/user/bin/python3 -m pip install <something>,或者从用户服务器的终端执行 sudo -E pip install <something>,您最终将在用户环境中安装一些东西,而这些东西在系统的 Python 环境或集线器环境中将不可用。