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刪除。

需求

任何隔離共享集群上運行磚運行時7.3 LTS毫升或磚運行時7.4毫升,notebook-scoped庫不兼容訪問控製表。另一種方法是使用庫工具(dbutils.library)磚集群運行時,或升級您的集群磚運行時7.5毫升以上。

使用notebook-scoped庫磚連接,您必須使用庫工具(dbutils.library)

司機節點

使用notebook-scoped庫可能導致更多的流量到司機節點為了保持環境一致執行器節點。

當你使用一個集群有100或更多的節點,最低要求司機節點實例類型n1-standard-32

對於更大的集群,使用更大的驅動節點。

安裝notebook-scoped庫%皮普

重要的

  • 從磚13.0運行時%皮普Python命令不自動重啟的過程。如果你安裝一個新的包或更新現有的包,您可能需要使用dbutils.python.restartPython ()看到新包。

  • 磚上運行時12.2 LTS下麵,磚建議把所有%皮普命令的筆記本。筆記本狀態重置後%皮普命令修改環境。如果你創建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內核代替。