使用
重要
本文档已过时,将来可能不会更新。 本内容中提及的产品、服务或技术不再受支持。 请参阅作用域为笔记本的 Python 库。
重要
%conda
命令已弃用,仅 Databricks Runtime 7.3 LTS ML 支持它。 Databricks 建议使用 %pip
来管理笔记本范围内的库。 如果需要只能使用 conda 安装的 Python 库,可以使用基于 conda 的 docker 容器预先安装所需的库。
Anaconda Inc. 在 2020 年 9 月为 anaconda.org 通道更新了其服务条款。 根据新的服务条款,如果依赖 Anaconda 的打包和分发,则可能需要商业许可证。 有关详细信息,请参阅 Anaconda Commercial Edition 常见问题解答。 对任何 Anaconda 通道的使用都受其服务条款的约束。
由于这一变化,Databricks 已删除 Conda 包管理器的默认通道配置。 这是一项重大更改。
若要使用 %conda
命令安装或更新包,必须使用 -c
来指定通道。 还必须更新 %conda install
和 %sh conda install
的所有使用情况,才能使用 -c
来指定通道。 如果未指定通道,则 conda 命令将失败,并显示 PackagesNotFoundError
。
%conda
命令等效于 %conda
命令,并支持与下述某些限制相同的 API。 以下部分介绍如何使用 %conda
命令来管理环境的示例。 有关使用 conda
安装 Python 包的详细信息,请参阅 conda
。
请注意,%conda
magic 命令在 Databricks Runtime 上不可用。 它们仅在 Databricks Runtime 7.3 LTS ML 上可用。 Databricks 建议使用 pip
来安装库。 有关详细信息,请参阅了解 conda 和 pip。
如果必须在笔记本中同时使用 %pip
和 %conda
命令,请参阅 %pip
。
备注
与 %conda
一起使用时,不支持以下 conda
命令:
activate
create
init
run
env create
env remove
%conda install matplotlib -c conda-forge
%conda uninstall matplotlib
将笔记本从群集中分离时,环境不会保存。 若要保存环境以便以后重用或将其与他人共享,请按照以下步骤进行操作。
Databricks 建议仅在运行同一版本的 Databricks Runtime ML 的群集之间共享环境。
将环境另存为 conda YAML 规范。
%conda env export -f /dbfs/myenv.yml
使用
conda env update
将文件导入到另一个笔记本。%conda env update -f /dbfs/myenv.yml
若要显示与笔记本关联的 Python 环境,请使用 %conda list
:
%conda list
若要避免冲突,请在使用 pip
或 conda
安装 Python 包和库时遵循这些准则。
- 通过库 API 或群集 UI 安装的库是使用
pip
安装的。 如果已从 API 或群集 UI 安装了任何库,则在安装笔记本范围内的库时,应仅使用%pip
命令。 - 如果在群集上使用以笔记本为作用域的库,则在该群集上运行的初始化脚本可以使用
conda
或pip
命令来安装库。 但是,如果初始化脚本包含pip
命令,则仅使用笔记本中的%pip
命令(而不是%conda
)。 - 最好是专门使用
pip
命令,或专门使用conda
命令。 如果必须使用conda
安装一些包,并使用pip
安装另一些包,请先运行conda
命令,然后再运行pip
命令。 有关详细信息,请参阅在 Conda 环境中使用 Pip。
从群集 UI 或 API 安装的库可用于群集上的所有笔记本。 这些库是使用 pip
安装的;因此,如果库是使用群集 UI 安装的,则在笔记本中只能使用 %pip
命令。
使用初始化脚本安装的库可用于群集上的所有笔记本。
如果在运行 Databricks Runtime ML 的群集上使用笔记本范围内的库,则群集上运行的初始化脚本可以使用 conda
或 pip
命令来安装库。 但是,如果初始化脚本包含 pip
命令,则仅使用笔记本中的 %pip
命令。
例如,此笔记本代码片段会生成一个脚本,该脚本将在所有群集节点上安装 fast.ai 包。
dbutils.fs.put("dbfs:/home/myScripts/fast.ai", "conda install -c pytorch -c fastai fastai -y", True)
是的。
是的,可以在 Python magic 单元中使用。
%sh
和 !
在笔记本中执行 shell 命令;前者是 Databricks 辅助 magic 命令,而后者是 IPython 的一项功能。 pip
是启用 automagic 时 %pip
的简写,这是 Azure Databricks Python 笔记本中的默认设置。
在 Databricks Runtime 11.0 及更高版本上,%pip
、%sh pip
和 !pip
都将库安装为笔记本范围的 Python 库。 在 Databricks Runtime 10.4 LTS 及更低版本中,Databricks 建议仅使用 %pip
或 pip
来安装笔记本范围的库。 %sh pip
和 !pip
的行为在 Databricks Runtime 10.4 LTS 及更低版本中不一致。
错误。
- 使用
%conda env update
更新笔记本环境时,不保证包的安装顺序。 这可能会导致horovod
包出现问题,在这种情况下,需要在horovod
之前安装tensorflow
和torch
,以便分别使用horovod.tensorflow
或horovod.torch
。 如果发生这种情况,请卸载horovod
包,并在确保安装依赖项后重新安装它。 - 在 Databricks Runtime 9.1 LTS 上,笔记本范围的库与批量流式处理作业不兼容。 Databricks 建议改用群集库或 IPython 内核。