跳到主要内容

运行时环境(镜像)概览

运行时环境中的通用依赖

OpenBayes 默认在运行时环境中包含了大量的基础依赖,以减少在每次容器启动时耗费运行资源进行依赖的下载与安装。

备注

不同运行时镜像、不同标签以及不同时间点更新的镜像,预装依赖和版本都可能不同。本页内容更适合作为“常见环境说明”和“依赖管理方式”的参考,不建议将其中列出的包视为对所有运行时都成立的固定清单。

下面的信息基于一个实际运行中的 runtime 示例(2026-03 检查):

  • Ubuntu 22.04.5 LTS
  • Conda 根环境位于 /usr/local
  • Python 3.10.13
  • JupyterLab 4.5.5
  • Notebook 7.5.3
  • CUDA Driver 13.0
  • nvcc 12.9

如需确认当前容器中的实际环境,建议优先在终端中执行以下命令:

python --version
pip list
conda list
jupyter --version
nvidia-smi
信息
  • 运行时提供 python 命令(指向 Conda 环境中的 Python),可直接使用
  • Python 版本由 Conda 管理,但大部分 Python 依赖推荐使用 pip 安装
  • conda 主要用于创建新环境或安装 conda-only 的包
  • 当前运行时未使用 uv 进行依赖管理,请使用 pipconda 安装依赖

预先安装的依赖可以按照用途分为以下几个方面:

1. 通用机器学习类库

  • scikit-learn 通用机器学习类库,包含了大量的机器学习模型、数据分析、数据挖掘算法以及可视化工具
  • ONNX 深度学习模型转换类库
  • ONNX Runtime ONNX 模型推理运行时
  • PyTorch 深度学习框架,部分运行时会同时预装 torchvisiontorchaudio
信息

以上包是当前检查到的实际 runtime 中确认存在的常见机器学习类库。像 xgboostspaCyLightGBMTensorFlow 等包是否预装,取决于你选择的具体运行时镜像,不建议默认假定一定存在。

2. 图像处理工具

常用的图形处理类库

  • OpenCV 功能强大的图像处理工具
  • Pillow Python 下常用的图像处理工具

3. 数据分析类库

  • pandas
  • SciPy
  • Matplotlib
  • NumPy

除上述类库外,部分运行时还会带有其他科学计算或推理相关依赖,但建议始终以当前容器中的实际结果为准。

如何添加不在列表中的依赖

默认的 OpenBayes 运行时环境已经安装了大量的机器学习场景下的依赖,如果你依然需要额外的依赖,可以通过以下方式安装。

备注

运行时环境以 Conda 进行管理,可以支持 Conda 安装额外的依赖

危险

每个运行时环境所安装的 CUDA 版本有所不同,在安装额外的依赖时一定要注意和运行时环境中 CUDA 的环境相匹配。

安装 Python 的类库

如果你在上传代码并以「Python 脚本执行」的方式运行代码时需要一些额外的依赖,可以在上传代码的根目录定义一个名为 openbayes_requirements.txt 或者 requirements.txt 的文件,并将它和其他代码文件一并上传。在代码运行前,系统会先安装这些依赖,再执行「Python 脚本」。

该文件内容的格式和 Python 的 requirements.txt 格式是一致的,一个典型的 openbayes_requirements.txt 文件内容如下:

requirements.txt
jieba
tqdm==4.11.2

其中 jieba tqdm 是两个可以通过 pip 安装的类库,通过以上格式即可在执行「python 脚本」之前首先安装这些类库。tqdm==4.11.2== 之后指定了想要具体安装的版本。

危险

系统中一些核心依赖如 tensorflowtorch 的版本不建议被随意修改,因为不同版本对底层 CUDA、编译产物和其他依赖的要求可能不同,容易导致当前环境损坏或出现兼容性问题。

通过 Conda 进行依赖管理

对于「工作空间」这部分见 用 Conda 管理依赖

对于「Python 脚本执行」可以在上传的代码根目录下提供名为 conda-packages.txt 的文件,其文件格式遵循

[channel::]package[=version[=buildid]]

这里有一个样例:

conda-packages.txt
conda-forge::rdkit
conda-forge::pygpu

如果 requirements.txtopenbayes_requirements.txtconda-packages.txt 同时存在,那么会首先安装 conda-packages.txt 里的依赖,然后再安装 openbayes_requirements.txt 以及 requirements.txt 中的依赖。

安装其他依赖

如果是在「Jupyter 工作空间」中可以参见下一部分。如果是「Python 脚本执行」场景你可以用以下方式安装额外的非 Python 的依赖:

  1. 将依赖安装命令包含在「执行命令」中

    例如想要在运行程序前下载必要的 git 仓库,可以使用以下「执行命令」:

    $ git clone https://github.com/tensorflow/models.git && cd models && python ...
  2. 准备一个 dependencies.sh 脚本

    对于非 Conda 和 PyPI 的依赖,可以在根目录提供一个名为 dependencies.sh 的文件,在「Python 脚本执行」启动时它会被 bash 执行,并且其执行会早于 openbayes_requirements.txt requirements.txtconda-packages.txt 依赖的安装。

例如可以准备一个 dependencies.sh 脚本,其内容如下:

dependencies.sh
git clone https://github.com/tensorflow/models.git
cd models
pip install -r requirements.txt
信息

你的运行时环境为 Linux Ubuntu 环境,如果想要安装额外的包依赖,可以采用 apt-get 或者 apt 命令,当然在执行之前通常需要执行命令 apt-get update 或者 apt update

在 Jupyter 工作空间中安装依赖

在「Jupyter 工作空间」中,你可以安装任意你需要的依赖,不论是 Python 的,还是通过 apt 安装的系统依赖。

例如下面就是在 Notebook 中安装一个额外的 Python 依赖:

推荐优先使用 %pip install jieba。它比 !pip install jieba 更适合 Notebook 场景,因为它会明确安装到当前内核所使用的 Python 环境中。

如果需要安装系统包,可以在终端中执行 apt-get update && apt-get install -y <package>,或者在 Notebook 中使用 !apt-get update && apt-get install -y <package>

保留 pip 依赖

默认情况下,额外通过 pip 安装的依赖通常保存在系统环境中,容器重启后往往需要重新安装。

如果在安装时加上 --user 参数,则这些依赖会被保存在用户目录对应的位置。当前运行时中,PYTHONUSERBASE 通常指向 /output/.pylibs;而 /openbayes/home 一般会链接到 /output,因此你也可以把它理解为保存在工作空间里。当「工作空间」关闭后再次启动时,这部分依赖通常会随着工作空间一起保留下来。

1. 删除不必要的依赖

如果你不想保留这些依赖,可以在「执行命令」中添加 rm -rf /output/.pylibs 命令。由于 /openbayes/home 通常链接到 /output,删除 /openbayes/home/.pylibs 也可以达到同样效果。

2. 需要不同的 Python 版本

如果需要一个不同的 Python 版本,可以依据 在 /openbayes/home 下创建一个新的环境,在 /openbayes/home 目录下创建一个新的 Conda 环境,并在其中安装完整依赖。

当前 OpenBayes 运行时中的 Python 版本并不是固定的。本文档检查到的实际示例为 Python 3.10.13,但你选择的具体运行时可能不同,建议通过 python --version 先确认。

信息

通过 conda 创建了一个全新的环境后不要使用 pip --user 的参数来安装依赖;在添加 --user 后依赖会被安排在 /openbayes/home/.pylibs 下而不是新创建的 conda 环境下,容易引发依赖的冲突。

安装 Jupyter 工作空间扩展

「Jupyter 工作空间」支持安装扩展,但扩展的安装方式会随着 JupyterLab 大版本变化而变化。较新的运行时通常使用 JupyterLab 4,许多扩展已经改为通过 Python 包分发,旧版本中常见的 jupyter labextension install ... 示例不一定仍然适用。

建议先检查当前环境:

jupyter --version
jupyter labextension list

如果目标扩展的官方文档明确说明支持当前 JupyterLab 版本,再按对应方式安装。对于 JupyterLab 4,更常见的方式是直接安装对应的 Python 包,例如:

pip install <extension-package>

安装完成后,可以再次执行 jupyter labextension list 检查扩展状态。