Notebook-scoped Python库

Notebook-scoped库允许您创建、修改、保存、重用和共享自定义Python环境特定于一个笔记本。当你安装一个notebook-scoped图书馆,只有当前笔记本和任何相关的工作笔记本获得图书馆。其他笔记本连接到相同的集群不受影响。

Notebook-scoped库不存在跨会话。你必须重新安装notebook-scoped库每个会话开始时,或当笔记本脱离一个集群。

有两种方法来安装notebook-scoped库:

  • 运行%皮普神奇的命令在一个笔记本上。为新工作负载数据砖推荐使用这种方法。本文描述了如何使用这些神奇的命令。

  • 在砖运行时的10.5和下面,您可以使用砖图书馆的效用。图书馆支持实用程序只在砖运行时,不是基因组砖运行时毫升或砖的运行时。看到库工具(dbutils.library)

安装库为所有笔记本电脑连接到一个集群,使用工作空间cluster-installed库。

重要的

“dbutils.library.install”“dbutils.library.installPyPI”api在砖运行时的11.0删除。

需求

Notebook-scoped库使用魔法命令是默认启用。

在高并发性集群运行砖运行时的7.4毫升或砖或低于7.4运行时基因组学,notebook-scoped库不兼容访问控制表凭据透传。另一种方法是使用库工具(dbutils.library)砖集群运行时,或升级您的集群砖运行时7.5毫升或砖7.5运行时的基因组学或以上。

使用notebook-scoped库砖连接,您必须使用库工具(dbutils.library)

司机节点

使用notebook-scoped库可能导致更多的流量到司机节点为了保持环境一致执行器节点。

与10个或更多当你使用一个集群节点,砖建议这些规格的最低要求司机节点:

  • 100节点CPU集群,i3.8xlarge使用。

  • 10节点GPU集群,p2.xlarge使用。

对于更大的集群,使用更大的驱动节点。

安装notebook-scoped库%皮普

重要的

  • 你应该把所有%皮普命令的笔记本。笔记本状态重置后%皮普命令修改环境。如果你创建Python方法或变量在一个笔记本上,然后使用%皮普命令在后面的细胞,方法或变量丢失。

  • 升级、修改或卸载核心Python包(比如IPython)%皮普可能会导致一些功能停止工作。例如,IPython与砖运行时的8.1和7.21及以上是不相容的。如果您遇到此类问题,重置环境分离和重新的笔记本或重新启动集群。

管理库与%皮普命令

%皮普命令相当于皮普命令和支持相同的API。以下小节将展示如何使用的例子%皮普命令来管理您的环境。有关安装Python包的更多信息皮普,请参阅pip安装文档和相关页面。

安装一个图书馆%皮普

%皮普安装matplotlib

安装一个轮子包%皮普

%皮普安装/路径//my_packagewhl

卸载一个图书馆,%皮普

请注意

你不能卸载包含在一个图书馆砖运行时或已经安装作为一个图书馆集群图书馆。如果您已经安装了一个不同的库版本比砖中包含的一个运行时或者一个安装在集群中,您可以使用%皮普卸载回复图书馆砖运行时的默认版本或版本安装在集群上,但你不能使用%皮普命令来卸载的版本库包含在砖在集群上运行或安装。

%皮普卸载- - - - - -ymatplotlib

可能是选项是必需的。

安装一个图书馆从版本控制系统%皮普

%皮普安装git+https:/ /githubcom//- - - - - -cli

您可以将参数添加到URL指定的版本或git目录。看到风险投资支持为更多的信息和示例使用其他版本控制系统。

安装一个私人包凭证由砖和秘密%皮普

皮普从私人来源与支持安装包基本身份验证,包括私人版本控制系统和私人包存储库,如联系Artifactory。秘密管理是可以通过砖秘密的API,它允许你存储和密码身份验证令牌。使用DBUtils API从你的笔记本访问机密。注意,您可以使用$变量在神奇的命令。

安装一个包从一个私人库,指定的存储库URL——index-url选项%皮普安装或将其添加到皮普配置文件在~ / .pip / pip.conf

令牌=dbutils秘密得到(范围=“范围”,关键=“关键”)
% pip安装——index-url https:// <用户>:美元的令牌@ < your-package-repository >.com/ <路径/ /回购> <包>= =<版本>——extra-index-url https://pypi.org/simple/

类似地,您可以使用与魔术秘密管理命令从版本控制系统安装私人包。

令牌=dbutils秘密得到(范围=“范围”,关键=“关键”)
% pip安装git + https:// <用户>:美元的令牌@ < gitprovider >.com/ <路径/ /回购>

从DBFS和安装包%皮普

您可以使用%皮普安装一个已经保存在DBFS私人包。

DBFS上传文件时,它会自动重命名文件,更换空间,时间,连字符和下划线。对于轮文件,皮普要求文件的名称使用时期的版本(例如,0.1.0)和连字符不是空格或下划线,所以这些文件名不改变。

%皮普安装/dbfs/mypackage- - - - - -0.0.1- - - - - -py3- - - - - -没有一个- - - - - -任何whl

保存库的需求文件

%皮普冻结>/dbfs/需求三种

文件路径中的任何子目录必须是已经存在的。如果你运行%皮普冻结>/ dbfs / <新目录> /让如果目录,命令失败/ dbfs / <新目录>不存在。

使用需求文件安装库

一个需求文件包含一系列包安装使用皮普。使用需求文件的一个例子是:

%皮普安装- - - - - -r/dbfs/需求三种

看到文件格式要求的更多信息文件。

管理库与% conda命令

重要的

% conda命令已经被弃用,砖后,将不再支持运行时8.4毫升。砖推荐使用%皮普用于管理notebook-scoped库。如果您需要使用conda Python库,只能安装,您可以使用conda-based码头工人容器预装所需要的库。

蟒蛇inc .)更新他们的服务条款2020年9月为anaconda.org渠道。基于新的服务条款你可能需要一个商业许可证如果你依靠蟒蛇的包装和分布。看到蟒蛇商业版常见问题解答为更多的信息。你使用任何蟒蛇是由他们的渠道服务条款

由于这一变化,砖消除了Conda包管理器默认通道配置。这是一个重大的变化。

安装或更新包使用% conda命令,您必须指定一个通道使用- c。您还必须更新所有的使用% conda安装% shconda安装指定一个频道使用- c。如果你不指定一个频道,conda命令将失败PackagesNotFoundError

% conda命令相当于conda命令和支持相同的API下面所提到的一些限制。下面的章节包含如何使用的例子% conda命令来管理您的环境。有关安装Python包的更多信息conda,请参阅conda安装文档

请注意,% conda魔术在砖运行时的命令不可用。他们只是在砖运行时可用毫升到砖运行时8.4毫升,砖运行时对基因组学的。砖推荐使用皮普安装库。有关更多信息,请参见理解conda和皮普

如果你必须使用两个%皮普% conda命令一个笔记本,看到的pip和conda命令之间的相互作用

请注意

以下conda当使用命令不支持% conda:

  • 激活

  • 创建

  • 初始化

  • 运行

  • env创建

  • env删除

安装一个图书馆% conda

%conda安装matplotlib- - - - - -cconda- - - - - -打造

卸载一个图书馆,% conda

%conda卸载matplotlib

保存和重用或共享的环境

当你从一个集群分离了一本笔记本,环境不被保存。拯救一个环境可以重用后或与别人分享,遵循这些步骤。

砖建议环境之间共享集群运行相同版本的砖运行时毫升或砖的相同版本的运行时对基因组学。

  1. 拯救环境作为conda YAML规范。

    %condaenv出口- - - - - -f/dbfs/myenvyml
  2. 导入文件到另一个笔记本使用condaenv更新

    %condaenv更新- - - - - -f/dbfs/myenvyml

一个笔记本的Python环境列表

Python环境带来一个笔记本,使用% conda列表:

%conda列表

之间的相互作用皮普conda命令

为了避免冲突,使用时遵循这些指导方针皮普conda安装Python包和库。

  • 库安装使用API或者使用集群的用户界面安装使用皮普。如果任何图书馆安装了API或集群的UI,你应该只使用%皮普命令在安装notebook-scoped库。

  • 如果你使用notebook-scoped库集群,集群上运行,可以使用init脚本conda皮普命令安装库。但是,如果包括init脚本皮普命令,只使用%皮普在笔记本(不是命令% conda)。

  • 最好使用皮普命令完全或conda专门的命令。如果您必须安装一些包使用conda和一些使用皮普,运行conda命令,然后再运行皮普命令。有关更多信息,请参见使用脉冲Conda环境

常见问题(FAQ)

图书馆如何从集群安装UI / API与notebook-scoped库吗?

图书馆从集群安装UI或API可用于集群上的所有笔记。这些库安装使用皮普;因此,如果使用集群UI库安装,只使用%皮普在笔记本电脑的命令。

图书馆如何安装使用init脚本与notebook-scoped库吗?

库安装使用init脚本可用于所有笔记本在集群上。

如果你使用notebook-scoped图书馆集群上运行砖运行时毫升或砖运行时对基因组学、init脚本运行在集群上可以使用conda皮普命令安装库。但是,如果包括init脚本皮普命令,然后使用%皮普在笔记本电脑的命令。

例如,这个笔记本代码片段生成一个脚本,该脚本安装快。人工智能在所有集群节点上包。

dbutilsfs(“dbfs: / home / myScripts / fast.ai”,“conda安装- c pytorch - c fastai fastai - y”,真正的)

我可以用% sh皮普,!皮普,或皮普吗?的区别是什么?

% sh!执行一个shell命令笔记本;前者是一个砖辅助魔法命令而后者是IPython的特性。皮普是一个缩写%皮普自动启用,默认在砖Python的笔记本。

上面的砖11.0运行时,%皮普,% sh皮普,!皮普所有安装一个图书馆notebook-scoped Python库。砖上运行时10.4 LTS下面,砖建议只使用%皮普皮普安装notebook-scoped库。的行为% sh皮普!皮普不一致的砖运行时10.4 LTS下面。

已知的问题

  • 当你使用% condaenv更新更新一个笔记本环境,包的安装顺序是没有保证的。这可能会导致问题horovod包,它要求tensorflow火炬被安装在horovod为了使用horovod.tensorflowhorovod.torch分别。如果发生这种情况,卸载horovod包和重新安装后确保安装的依赖关系。

  • 砖上运行时10.3及以下,notebook-scoped库不兼容批流工作。砖推荐使用集群库或者是IPython内核代替。