Python-bibliotheken met notebookbereik

Met notebook-scoped bibliotheken kunt u aangepaste Python-omgevingen maken, wijzigen, opslaan, hergebruiken en delen die specifiek zijn voor een notebook. Wanneer u een bibliotheek op notebookniveau installeert, hebben alleen het huidige notebook en alle jobs die aan dat notebook zijn gekoppeld toegang tot die bibliotheek. Andere notebooks die aan hetzelfde cluster zijn gekoppeld, worden niet beïnvloed.

Bibliotheken binnen een notebook worden niet behouden tussen sessies. U moet bibliotheken met notebookbereik opnieuw installeren aan het begin van elke sessie of wanneer het notebook is losgekoppeld van een cluster.

Databricks raadt u aan de %pip magic-opdracht te gebruiken om Python-bibliotheken voor een notebook te installeren. Op serverloze notebooks waarop omgevingsversie 5 of hoger wordt uitgevoerd, kunt u ook gebruiken %uv pip voor snellere installaties.

U kunt %pip gebruiken in notebooks die als taken zijn gepland. Als u de Python-omgeving in een Scala-, SQL- of R-notebook wilt beheren, gebruikt u de %python magic-opdracht in combinatie met %pip.

U kunt meer verkeer naar het driverknooppunt ervaren wanneer u werkt met bibliotheekinstallaties binnen het bereik van een notebook. Zie aanbevelingen voor de grootte van drivernodes.

Gebruik clusterbibliotheken om bibliotheken te installeren voor alle notebooks die aan een cluster zijn gekoppeld. Zie bibliotheken met rekenbereik.

Zie Python-omgevingsbeheer voor een uitgebreid overzicht van beschikbare opties voor het installeren van Python-bibliotheken in Databricks.

Bibliotheken beheren met %pip opdrachten

De %pip opdracht is gelijk aan de pip-opdracht en ondersteunt dezelfde API. In de volgende secties ziet u voorbeelden van hoe u opdrachten kunt gebruiken %pip om uw omgeving te beheren. Zie de pip install-documentatie en verwante pagina’s voor meer informatie over het installeren van Python-pakketten met pip.

Belangrijk

  • %pip-opdrachten starten het Python proces niet automatisch opnieuw op. Als u een nieuw pakket installeert of een bestaand pakket bijwerkt, moet u mogelijk dbutils.library.restartPython() gebruiken om de nieuwe pakketten te zien. Zie Het Python-proces opnieuw opstarten in Azure Databricks.
  • Het bijwerken, aanpassen of verwijderen van Python-kernpakketten (zoals IPython) met %pip kan ertoe leiden dat sommige functies niet meer werken zoals verwacht. Als u dergelijke problemen ondervindt, stelt u de omgeving opnieuw in door het cluster opnieuw te starten of een nieuwe sessie te starten.

Snellere installaties met %uv pip

Notitie

%uv pip is alleen beschikbaar op serverloze notebooks met omgevingsversie 5 of hoger. Klassieke compute en eerdere serverloze omgevingsversies bieden geen ondersteuning voor %uv pip.

De %uv pip magic-opdracht is een sneller alternatief voor %pip. %uv pip wordt mogelijk gemaakt door uv-pakketbeheer en deelt dezelfde virtuele notebookomgeving als %pip, zodat pakketten die met één hulpprogramma zijn geïnstalleerd, zichtbaar zijn voor de andere.

%uv pip is sneller dan %pip voor installaties en alleen-lezen bewerkingen zoals list. Dit maakt het geschikt voor iteratie boven op een omgevingsspecificatie.

%uv pipondersteunt de standaardsubopdrachten: , , pipinstall, uninstall, , list, , en showfreeze. checktree

%uv pip install simplejson
%uv pip list

Andere installatiepatronen op deze pagina (volumes, werkruimtebestanden, vereistenbestanden, versiebeheer, privéopslagplaatsen) werken met %uv pip. U kunt %pip vervangen door %uv pip in elk van deze voorbeelden.

%uv pip Beperkingen

  • %uv pip uninstall bibliotheken die vooraf zijn geïnstalleerd in de serverloze omgeving, kunnen niet volledig worden verwijderd. Alleen de metagegevens van het pakket worden verwijderd. De onderliggende bestanden blijven op het bestandssysteem staan en het pakket kan nog steeds worden geïmporteerd.
  • %uv pip controleert niet op afhankelijkheidsconflicten voor vooraf geïnstalleerde bibliotheken.
  • Na het uitvoeren van %uv pip-opdrachten kunnen in het zijpaneel Environment van de notebook sommige vooraf geïnstalleerde bibliotheken worden weergegeven als door de gebruiker geïnstalleerd. Dit is een weergaveprobleem en heeft geen invloed op pakketfunctionaliteit.
  • %uv pip is bedoeld voor snelle interactieve iteratie. Als u een reproduceerbare omgeving voor het notebook wilt instellen, voegt u afhankelijkheden toe in het deelvenster Omgeving van het notitieblok.

Een bibliotheek installeren met %pip

%pip install matplotlib

Een Python-wielpakket installeren met %pip

%pip install /path/to/my_package.whl

Een bibliotheek verwijderen met %pip

Notitie

U kunt geen bibliotheek verwijderen die is opgenomen in de releaseversies en compatibiliteit van Databricks Runtime of een bibliotheek die is geïnstalleerd als een clusterbibliotheek. Als u een andere bibliotheekversie hebt geïnstalleerd dan de versie die is opgenomen in Databricks Runtime of de versie die op het cluster is geïnstalleerd, kunt u de bibliotheek herstellen naar de standaardversie in Databricks Runtime of de versie die op het cluster is geïnstalleerd, maar u kunt geen %pip uninstall opdracht gebruiken %pip om de versie van een bibliotheek die is opgenomen in Databricks Runtime te verwijderen of op het cluster te installeren.

%pip uninstall -y matplotlib

De -y optie is vereist.

Een bibliotheek installeren vanuit een versiebeheersysteem met %pip

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

U kunt parameters toevoegen aan de URL om bijvoorbeeld de versie of git-submap op te geven. Zie de VCS-ondersteuning voor meer informatie en voorbeelden van het gebruik van andere versiebeheersystemen.

Een privépakket installeren met referenties die worden beheerd door Databricks-geheimen met %pip

pip ondersteunt het installeren van pakketten van privébronnen met basisverificatie, waaronder systemen voor privéversiebeheer en opslagplaatsen voor privépakketten, zoals Nexus en Artifactory. Geheimbeheer is beschikbaar via de Databricks Secrets-API, waarmee u verificatietokens en wachtwoorden kunt opslaan. Gebruik de DBUtils-API voor toegang tot geheimen vanuit uw notebook. Houd er rekening mee dat u kunt gebruiken $variables in magic-opdrachten.

Als u een pakket vanuit een privérepository wilt installeren, geeft u de repository-URL op met de optie --index-url voor %pip install, of voegt u deze toe aan het configuratiebestand pip in ~/.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/

Op dezelfde manier kunt u geheimbeheer gebruiken met magic-opdrachten om privépakketten te installeren vanuit versiebeheersystemen.

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

Een pakket installeren vanuit DBFS met %pip

Belangrijk

Elke werkruimtegebruiker kan bestanden wijzigen die zijn opgeslagen in DBFS. Azure Databricks raadt u aan bestanden op te slaan in werkruimten of op Unity Catalog-volumes.

U kunt een %pip privépakket installeren dat is opgeslagen op DBFS.

Wanneer u een bestand uploadt naar DBFS, wordt de naam van het bestand automatisch gewijzigd, waarbij spaties, punten en afbreekstreepjes worden vervangen door onderstrepingstekens. Voor Python-wheelbestanden vereist pip dat in de bestandsnaam punten in de versie worden gebruikt (bijvoorbeeld 0.1.0) en koppeltekens in plaats van spaties of lage streepjes, dus deze bestandsnamen worden niet gewijzigd.

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

Een pakket installeren vanaf een volume met %pip

Belangrijk

Deze functie is beschikbaar als openbare preview.

Met Databricks Runtime 13.3 LTS en hoger kunt u %pip gebruiken om een privépakket te installeren dat in een volume is opgeslagen.

Wanneer u een bestand uploadt naar een volume, wordt de naam van het bestand automatisch gewijzigd, waarbij spaties, punten en afbreekstreepjes worden vervangen door onderstrepingstekens. Voor Python-wheelbestanden vereist pip dat in de bestandsnaam punten in het versienummer worden gebruikt (bijvoorbeeld 0.1.0) en koppeltekens in plaats van spaties of onderstrepingstekens, dus deze bestandsnamen worden niet gewijzigd.

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

Een pakket installeren dat is opgeslagen als een werkruimtebestand met %pip

Met Databricks Runtime 11.3 LTS en hoger kunt %pip u een privépakket installeren dat is opgeslagen als een werkruimtebestand.

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

Bibliotheken opslaan in een vereistenbestand

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

Alle submappen in het bestandspad moeten al bestaan. Als u deze uitvoert %pip freeze > /Workspace/<new-directory>/requirements.txt, mislukt de opdracht als de map /Workspace/<new-directory> nog niet bestaat.

Een vereistenbestand gebruiken om bibliotheken te installeren

Een vereistenbestand bevat een lijst met pakketten die moeten worden geïnstalleerd met behulp van pip. Een voorbeeld van het gebruik van een vereistenbestand is:

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

Zie Bestandsindeling voor requirements voor meer informatie over requirements.txt-bestanden.

Aanbevelingen voor de omvang van driverknooppunten

Als u notebookbibliotheken gebruikt, kan dit leiden tot meer verkeer naar het stuurprogrammaknooppunt, omdat het werkt om de omgeving consistent te houden tussen uitvoerknooppunten.

Wanneer u een cluster met 10 of meer knooppunten gebruikt, raadt Databricks deze specificaties aan als minimumvereiste voor het stuurprogrammaknooppunt:

  • Gebruik Standard_D8ds_v5 voor een CPU-cluster met 100 knooppunten.
  • Gebruik Standard_NC12 voor een GPU-cluster met 10 knooppunten.

Gebruik voor grotere clusters een groter stuurprogrammaknooppunt.

Verschillen tussen %pip, %sh pipen !pip

%sh en ! voeren een shell-opdracht uit in een notebook; de eerste is een Databricks-aanvullende magic-opdracht, terwijl de tweede een functie van IPython is. pip is een afkorting voor %pip wanneer automagic is ingeschakeld. Dit is de standaardinstelling in Azure Databricks Python-notebooks.

In Databricks Runtime 11.3 LTS en hoger installeren %pip, %sh pip en !pip allemaal een bibliotheek als een Python-bibliotheek met notebookbereik. Voor Databricks Runtime 10.4 LTS en lager raadt Databricks aan om alleen %pip of pip te gebruiken om notebookgebonden bibliotheken te installeren. Het gedrag van %sh pip en !pip is niet consistent in Databricks Runtime 10.4 LTS en lager.

Bekende problemen

  • In Databricks Runtime 9.1 LTS zijn bibliotheken met notebookbereik niet compatibel met batch-streamingtaken. Databricks raadt aan om in plaats daarvan clusterbibliotheken of de IPython-kernel te gebruiken.