安装 conda、pip 或 apt 包#

TLJH (The Littlest JupyterHub) 在同一个 conda 环境中启动所有用户。在此环境中安装的包/库可供 JupyterHub 上的所有用户使用。具有 管理员权限 的用户可以轻松安装包。

安装 pip 包#

pip 是从 Python 包索引 (PyPI) 安装 Python 包的推荐工具。PyPI 目前拥有近 145,000 个包,因此您需要的很多东西都可以在那里找到!

  1. 以管理员用户身份登录,并在 Jupyter Notebook 中打开一个终端。

    New Terminal button under New menu

    如果您已经以管理员用户身份打开了终端,那么它也应该可以工作!

  2. 安装一个包!

    sudo -E pip install numpy
    

    这将从 PyPI 安装 numpy 库,并使其可供所有用户使用。

    注意

    如果您收到类似于 sudo: pip: command not found 的错误消息,请确保您没有在 sudo 之后缺少 -E 参数。

安装 conda 包#

Conda 允许您安装新的语言(例如 Python、Node、R 等的新版本),以及这些语言中的包。对于许多科学软件,使用 conda 安装通常比使用 pip 安装更简单、更容易 - 特别是如果它链接到 C/Fortran 代码。

我们建议从 conda-forge 安装包,这是一个由社区维护的 conda 包存储库。

  1. 以管理员用户身份登录,并在 Jupyter Notebook 中打开一个终端。

    New Terminal button under New menu

    如果您已经以管理员用户身份打开了终端,那么它也应该可以工作!

  2. 安装一个包!

    sudo -E conda install -c conda-forge gdal
    

    这将从 conda-forge 安装 gdal 库,并使其可供所有用户使用。 gdal 使用 pip 很难安装。

    注意

    如果您遇到类似于 sudo: conda: command not found 的错误消息,请确保您在 sudo 后没有遗漏 -E 参数。

安装 apt 包#

aptUbuntu Linux 发行版 的官方包管理器。您可以安装实用程序(例如 vimslhtop 等)、服务器(postgresmysqlnginx 等)以及 conda 中提供的更多语言(haskellprologINTERCAL)。一些第三方软件(例如 RStudio)以 .deb 文件的形式分发,这些文件是 apt 用于安装软件的文件。

您可以使用 Ubuntu 包搜索 搜索包 - 确保查看您正在使用的 Ubuntu 版本!

  1. 以管理员用户身份登录,并在 Jupyter Notebook 中打开一个终端。

    New Terminal button under New menu

    如果您已经以管理员用户身份打开了终端,那么它也应该可以工作!

  2. 更新可用包列表。这将确保您从存储库中获取最新版本的包。

    sudo apt update
    
  3. 安装您想要的包。

    sudo apt install mysql-server git
    

    这将安装(并启动)一个 MySQL 数据库服务器和 git

用户环境位置#

用户环境是在 /opt/tljh/user 中设置的 conda 环境,默认使用 python3 内核。所有用户都可以读取它,但只有具有 root 权限的用户才能写入它。这使得 JupyterHub 管理员(具有 sudo 的 root 权限)可以轻松地在用户环境中安装软件。

在 JupyterHub 外部访问用户环境#

我们将 /opt/tljh/user/bin 添加到所有 JupyterHub 用户的 $PATH 环境变量中,因此在用户环境中安装的所有内容都会自动对他们可用。如果您使用 ssh 访问您的服务器,则可以使用以下方法访问相同的环境:

export PATH=/opt/tljh/user/bin:${PATH}

现在,无论何时运行任何命令,都会先搜索用户环境,然后再搜索您的系统环境。因此,如果您运行 python3 <somefile>,它将使用用户环境中安装的 python3/opt/tljh/user/bin/python3),而不是系统环境中安装的 python3/usr/bin/python3)。这通常是您想要的!

要使此更改“生效”,您可以在主目录中的 .bashrc 文件末尾添加该行。

使用 sudo 时,出于安全原因,$PATH 环境变量通常会被重置。这会导致类似于以下的错误消息:

sudo conda install -c conda-forge gdal
sudo: conda: command not found

使用 ssh 时,最常见且最便携的解决方法是:

sudo PATH=${PATH} conda install -c conda-forge gdal

升级到更新的 Python 版本#

所有新的 TLJH 安装都使用 miniconda 4.7.10,它为用户提供了一个 Python 3.7 环境。以前的 TLJH 安装使用 miniconda 4.5.4,这意味着一个 Python 3.6 环境。

要升级用户环境的 Python 版本,您可以:

  • 在没有安装 TLJH 的机器上重新开始。

    请参阅有关如何安装 TLJH 的 安装 部分。

  • 手动升级 Python。

    由于为现有安装升级 Python 可能会破坏在旧 Python 下安装的包,因此升级当前的 TLJH 安装不会升级用户环境的 Python 版本,但您可以手动执行此操作。

    步骤

    1. 如果使用 ssh,请激活用户环境。如果终端是使用 JupyterHub 启动的,则可以跳过此步骤。

      source /opt/tljh/user/bin/activate
      
    2. 获取当前已安装的 pip 包列表(以便您稍后在新的 Python 下安装它们)。

      pip freeze > pip_pkgs.txt
      
    3. 更新环境中所有 conda 安装的包。

      sudo PATH=${PATH} conda update --all
      
    4. 更新 Python 版本。

      sudo PATH=${PATH} conda install python=3.7
      
    5. 安装之前保存的 pip 包。

      pip install -r pip_pkgs.txt