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 pip
finns 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ändadbutils.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.txt
misslyckas 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
, !pip
eller 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 pip
och !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.