0 / 0
Go back to the English version of the documentation
环境模板定制示例
Last updated: 2024年8月13日
环境模板定制示例

使用为 Python 和 R 提供的模板创建环境模板时,请遵循说明如何通过 condapip 添加定制库的示例。

注: 您可以在以下示例中使用 mamba 来代替 conda 。 如果将通道或软件包从 mamba 添加到现有环境模板,请记住选中要从 mamba 安装的复选框。

存在以下示例:

提示和技巧:

添加 conda 软件包

要获取最新版本的 pandas-profiling:

dependencies:
  - pandas-profiling

这等效于在 Notebook 中运行 conda install pandas-profiling

添加 pip 软件包

如果特定软件包在 conda 通道中不可用,那么您还可以使用 pip 来定制环境:

dependencies:
  - pip:
    - ibm_watsonx_ai

这等效于在 Notebook 中运行 pip install ibm_watsonx_ai

定制将实际执行的不仅仅是安装指定的 pip 软件包。 conda 的缺省行为是还查找 pip 本身的新版本,然后进行安装。 检查 conda 中的所有隐式依赖关系通常需要几分钟时间,也需要千兆字节内存。 以下定制将快捷方式安装 pip:

channels:
  - empty
  - nodefaults

dependencies:
  - pip:
    - ibm_watsonx_ai

conda 通道 empty 不提供任何包。 尤其是没有 pip 包。 conda 不会尝试安装 pip ,而是使用已预先安装的版本。 请注意,通道列表中的关键字 nodefaults 至少需要该列表中的一个其他通道。 否则, conda 将以静默方式忽略该关键字并使用缺省通道。

组合 condapip

可以列出多个软件包,每行一个软件包。 单个定制可以同时具有 conda 包和 pip 包。

dependencies:
  - pandas-profiling
  - scikit-learn=0.20
  - pip:
    - ibm_watsonx_ai
    - sklearn-pandas==1.8.0

请注意,必需的模板表示法区分前导空格。 conda 软件包列表中的每个项都必须具有两个前导空格。 pip 软件包列表中的每个项都必须具有四个前导空格。 必须使用单个等号 (=) 指定 conda 包的版本,而必须使用两个等号 (==) 添加 pip 包的版本。

添加带有内部依赖项的复杂软件包

当您添加许多包或具有许多内部依赖关系的复杂包时, conda 安装可能需要很长时间,甚至可能停止而不返回任何错误消息。 要避免出现这种情况,请执行以下操作:

  • 指定要添加的软件包的版本。 这将减少 conda 用于解析依赖关系的搜索空间。
  • 增加环境的内存大小。
  • 使用特定通道,而不是 .condarc 文件中定义的缺省 conda 通道。 这可避免通过大型通道运行冗长的搜索。

不使用缺省 conda 通道的定制示例:

# get latest version of the prophet package from the conda-forge channel
channels:
  - conda-forge
  - nodefaults

dependencies:
  - prophet

此定制对应于 Notebook 中的以下命令:

!conda install -c conda-forge --override-channels prophet -y

为 R Notebook 添加 conda 软件包

以下示例显示了如何创建用于添加要在 R Notebook 中使用的 conda 软件包的定制:

channels:
  - defaults

dependencies:
  - r-plotly

此定制对应于 Notebook 中的以下命令:

print(system("conda install r-plotly", intern=TRUE))

conda 中 R 包的名称通常以前缀 r-开头。 如果仅在定制中使用 plotly ,那么安装将成功,但将安装 Python 软件包而不是 R 软件包。 如果然后尝试像在 library(plotly)中一样在 R 代码中使用该包,那么这将返回错误。

正在设置环境变量

您可以通过将 variables 部分添加到软件定制模板来设置环境中的环境变量,如以下示例中所示:

variables:
  my_var: my_value
  HTTP_PROXY: https://myproxy:3128
  HTTPS_PROXY: https://myproxy:3128
  NO_PROXY: cluster.local

此示例还显示您可以使用 variables 部分来设置环境的代理服务器。

限制: 无法使用此方法覆盖现有环境变量,例如 LD_LIBRARY_PATH

最佳实践

要避免缺少软件包和存在冲突的依赖关系的问题,请首先通过测试环境中的 Notebook 手动安装所需的软件包。 这样,您可以以交互方式检查是否可以安装软件包而不发生错误。 验证是否正确安装了软件包后,请为开发环境或生产环境创建定制,并将这些软件包添加到定制模板。

父主题: 定制环境

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more