安装 conda、pip 或 apt 软件包#
TLJH (The Littlest JupyterHub)
在相同的 conda 环境中启动所有用户。安装在此环境中的软件包/库可供 JupyterHub 上的所有用户使用。拥有管理员权限的用户可以轻松安装软件包。
安装 pip 软件包#
pip 是从 Python Packaging Index (PyPI) 安装 Python 软件包的推荐工具。PyPI 现在有将近 145,000 个软件包,所以您需要的大部分都在那里!
以管理员用户身份登录并在Jupyter Notebook中打开一个终端。
如果您已经以管理员用户身份打开了终端,那也应该可以!
安装一个软件包!
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 软件包仓库)安装软件包。
以管理员用户身份登录并在Jupyter Notebook中打开一个终端。
如果您已经以管理员用户身份打开了终端,那也应该可以!
安装一个软件包!
sudo -E conda install -c conda-forge gdal
这会从
conda-forge
安装gdal
库,并使其可供所有用户使用。gdal
使用 pip 安装要困难得多。注意
如果您收到类似
sudo: conda: command not found
的错误消息,请确保在sudo
之后没有遗漏-E
参数。
安装 apt 软件包#
apt 是 Ubuntu Linux 发行版的官方包管理器。您可以安装实用程序(例如 vim
、sl
、htop
等)、服务器(postgres
、mysql
、nginx
等)以及比 conda
中存在更多的语言(haskell
、prolog
、INTERCAL
)。某些第三方软件(例如 RStudio)以 .deb
文件分发,这些文件是 apt
用于安装软件的文件。
您可以使用 Ubuntu 包搜索来搜索软件包——请务必查找您正在使用的 Ubuntu 版本!
以管理员用户身份登录并在Jupyter Notebook中打开一个终端。
如果您已经以管理员用户身份打开了终端,那也应该可以!
更新可用软件包列表。这确保您从仓库获取最新版本的软件包。
sudo apt update
安装您想要的软件包。
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 版本,但您可以手动进行。
步骤
如果使用 ssh,请激活用户环境。如果终端是使用 JupyterHub 启动的,则可以跳过此步骤。
source /opt/tljh/user/bin/activate
获取当前已安装的 pip 软件包列表(以便您以后可以在新 Python 下安装它们)
pip freeze > pip_pkgs.txt
更新环境中所有 conda 安装的软件包
sudo PATH=${PATH} conda update --all
更新 Python 版本
sudo PATH=${PATH} conda install python=3.7
安装之前保存的 pip 软件包
pip install -r pip_pkgs.txt