Dela via


Python-bibliotek med notebook-omfång

Med bibliotek med notebook-omfång kan du skapa, ändra, spara, återanvända och dela anpassade Python-miljöer som är specifika för en notebook-fil. När du installerar ett bibliotek med notebook-omfång har endast den aktuella notebook-filen och alla jobb som är associerade med anteckningsboken åtkomst till det biblioteket. Andra notebook-filer som är kopplade till samma kluster påverkas inte.

Bibliotek med notebook-omfång bevaras inte mellan sessioner. Du måste installera om bibliotek med notebook-omfång i början av varje session, eller när anteckningsboken kopplas från ett kluster.

Databricks rekommenderar att du använder det %pip magiska kommandot för att installera Python-bibliotek med notebook-omfattning.

Du kan använda %pip i notebook-filer som schemalagts som jobb. Om du behöver hantera Python-miljön i en Scala-, SQL- eller R-notebook-fil använder du det %python magiska kommandot tillsammans med %pip.

Du kan uppleva mer trafik till drivrutinsnoden när du arbetar med biblioteksinstallationer med notebook-omfång. Se Hur stor ska drivrutinsnoden vara när du arbetar med bibliotek med notebook-omfång?.

Om du vill installera bibliotek för alla notebook-filer som är anslutna till ett kluster använder du klusterbibliotek. Se Klusterbibliotek.

En omfattande översikt över tillgängliga alternativ för att installera Python-bibliotek i Databricks finns i Python-miljöhantering.

Kommentar

På Databricks Runtime 10.4 LTS och nedan kan du använda (äldre) Azure Databricks-biblioteksverktyget. Biblioteksverktyget stöds endast på Databricks Runtime, inte Databricks Runtime ML. Se Biblioteksverktyget (dbutils.library) (äldre).

Hantera bibliotek med %pip kommandon

Kommandot %pip motsvarar pip-kommandot och stöder samma API. I följande avsnitt visas exempel på hur du kan använda %pip kommandon för att hantera din miljö. Mer information om hur du installerar Python-paket med pipfinns i pip-installationsdokumentationen och relaterade sidor.

Viktigt!

  • Från och med Databricks Runtime 13.0-kommandon %pip startas inte Python-processen om automatiskt. Om du installerar ett nytt paket eller uppdaterar ett befintligt paket kan du behöva använda dbutils.library.restartPython() för att se de nya paketen. Se Starta om Python-processen i Azure Databricks.
  • På Databricks Runtime 12.2 LTS och nedan rekommenderar Databricks att du placerar alla %pip kommandon i början av notebook-filen. Notebook-tillståndet återställs efter alla %pip kommandon som ändrar miljön. Om du skapar Python-metoder eller variabler i en notebook-fil och sedan använder %pip kommandon i en senare cell går metoderna eller variablerna förlorade.
  • Om du uppgraderar, ändrar eller avinstallerar python-kärnpaket (till exempel IPython) med %pip kan vissa funktioner sluta fungera som förväntat. Om du får sådana problem återställer du miljön genom att koppla från och koppla notebook-filen igen eller genom att starta om klustret.

Installera ett bibliotek med %pip

%pip install matplotlib

Installera ett Python-hjulpaket med %pip

%pip install /path/to/my_package.whl

Avinstallera ett bibliotek med %pip

Kommentar

Du kan inte avinstallera ett bibliotek som ingår i Databricks Runtime versionsanteckningar och kompatibilitet eller ett bibliotek som har installerats som ett klusterbibliotek. Om du har installerat en annan biblioteksversion än den som ingår i Databricks Runtime eller den som är installerad i klustret kan du använda %pip uninstall för att återställa biblioteket till standardversionen i Databricks Runtime eller den version som är installerad i klustret, men du kan inte använda ett %pip kommando för att avinstallera versionen av ett bibliotek som ingår i Databricks Runtime eller installeras i klustret.

%pip uninstall -y matplotlib

Alternativet -y krävs.

Installera ett bibliotek från ett versionskontrollsystem med %pip

%pip install git+https://github.com/databricks/databricks-cli

Du kan lägga till parametrar i URL:en för att ange saker som versionen eller git-underkatalogen. Mer information och exempel med andra versionskontrollsystem finns i VCS-stödet .

Installera ett privat paket med autentiseringsuppgifter som hanteras av Databricks-hemligheter med %pip

Pip stöder installation av paket från privata källor med grundläggande autentisering, inklusive privata versionskontrollsystem och privata paketlagringsplatser, till exempel Nexus och Artifactory. Hemlig hantering är tillgängligt via Databricks Secrets-API:et, som gör att du kan lagra autentiseringstoken och lösenord. Använd DBUtils-API:et för att komma åt hemligheter från din notebook-fil. Observera att du kan använda $variables i magiska kommandon.

Om du vill installera ett paket från en privat lagringsplats anger du lagringsplatsens URL med --index-url alternativet till %pip install eller lägger till det i pip konfigurationsfilen på ~/.pip/pip.conf.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/

På samma sätt kan du använda hemlig hantering med magiska kommandon för att installera privata paket från versionskontrollsystem.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>

Installera ett paket från DBFS med %pip

Viktigt!

Alla arbetsyteanvändare kan ändra filer som lagras i DBFS. Azure Databricks rekommenderar att du lagrar filer på arbetsytor eller på Unity Catalog-volymer.

Du kan använda %pip för att installera ett privat paket som har sparats på DBFS.

När du laddar upp en fil till DBFS byter den automatiskt namn på filen och ersätter blanksteg, punkter och bindestreck med understreck. För Python-hjulfiler pip kräver det att namnet på filen använder perioder i versionen (till exempel 0.1.0) och bindestreck i stället för blanksteg eller understreck, så att dessa filnamn inte ändras.

%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl

Installera ett paket från en volym med %pip

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Med Databricks Runtime 13.3 LTS och senare kan du använda %pip för att installera ett privat paket som har sparats på en volym.

När du laddar upp en fil till en volym byter den automatiskt namn på filen och ersätter blanksteg, punkter och bindestreck med understreck. För Python-hjulfiler pip kräver det att namnet på filen använder perioder i versionen (till exempel 0.1.0) och bindestreck i stället för blanksteg eller understreck, så att dessa filnamn inte ändras.

%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl

Installera ett paket som lagras som en arbetsytefil med %pip

Med Databricks Runtime 11.3 LTS och senare kan du använda %pip för att installera ett privat paket som har sparats som en arbetsytefil.

%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl

Spara bibliotek i en kravfil

%pip freeze > /Workspace/shared/prod_requirements.txt

Alla underkataloger i filsökvägen måste redan finnas. Om du kör %pip freeze > /Workspace/<new-directory>/requirements.txtmisslyckas kommandot om katalogen /Workspace/<new-directory> inte redan finns.

Använda en kravfil för att installera bibliotek

En kravfil innehåller en lista över paket som ska installeras med .pip Ett exempel på hur du använder en kravfil är:

%pip install -r /Workspace/shared/prod_requirements.txt

Mer information om requirements.txt filer finns i Kravfilformat.

Hur stor ska drivrutinsnoden vara när du arbetar med bibliotek med notebook-omfång?

Om du använder bibliotek med notebook-omfång kan det leda till mer trafik till drivrutinsnoden eftersom den fungerar för att hålla miljön konsekvent mellan körnoder.

När du använder ett kluster med 10 eller fler noder rekommenderar Databricks dessa specifikationer som ett minimikrav för drivrutinsnoden:

  • För ett processorkluster med 100 noder använder du Standard_DS5_v2.
  • För ett GPU-kluster med 10 noder använder du Standard_NC12.

Använd en större drivrutinsnod för större kluster.

Kan jag använda %sh pip, !pipeller pip? Vad är skillnaden?

%sh och ! kör ett gränssnittskommando i en notebook-fil. Det förra är ett Databricks-extra magiskt kommando medan det senare är en funktion i IPython. pip är en förkortning för %pip när automagic är aktiverat, vilket är standard i Azure Databricks Python Notebooks.

På Databricks Runtime 11.3 LTS och senare %pip, , %sh pipoch !pip alla installerar ett bibliotek som ett Python-bibliotek med notebook-omfång. På Databricks Runtime 10.4 LTS och nedan rekommenderar Databricks att du endast %pip använder eller pip installerar bibliotek med notebook-omfång. Beteendet %sh pip för och !pip är inte konsekvent i Databricks Runtime 10.4 LTS och nedan.

Kända problem

  • På Databricks Runtime 9.1 LTS är bibliotek med notebook-omfång inte kompatibla med batchströmningsjobb. Databricks rekommenderar att du använder klusterbibliotek eller IPython-kerneln i stället.