使用为 Python 和 R 提供的模板创建环境模板时,请遵循说明如何通过 conda
或 pip
添加定制库的示例。
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
将以静默方式忽略该关键字并使用缺省通道。
组合 conda
和 pip
包
可以列出多个软件包,每行一个软件包。 单个定制可以同时具有 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 手动安装所需的软件包。 这样,您可以以交互方式检查是否可以安装软件包而不发生错误。 验证是否正确安装了软件包后,请为开发环境或生产环境创建定制,并将这些软件包添加到定制模板。
父主题: 定制环境