Delen via


Python-bibliotheken binnen Notebook

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 met notebookbereik installeert, hebben alleen het huidige notitieblok en alle taken die aan dat notitieblok zijn gekoppeld toegang tot die bibliotheek. Andere notebooks die aan hetzelfde cluster zijn gekoppeld, worden niet beïnvloed.

Bibliotheken met notebookbereik blijven 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 met notebookbereik te installeren.

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

Mogelijk ondervindt u meer verkeer naar het stuurprogrammaknooppunt wanneer u werkt met bibliotheekinstallatie met notebookbereik. Zie Hoe groot moet het stuurprogrammaknooppunt zijn bij het werken met notebook-scoped bibliotheken?

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

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

Notitie

In Databricks Runtime 10.4 LTS en hieronder kunt u het (verouderde) Azure Databricks-bibliotheekhulpprogramma gebruiken. Het bibliotheekhulpprogramma wordt alleen ondersteund in Databricks Runtime, niet databricks Runtime ML. Zie bibliotheekhulpprogramma (dbutils.library) (verouderd).

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-installatiedocumentatie en verwante pagina's voor meer informatie over het installeren van Python-pakketten metpip.

Belangrijk

  • Vanaf Databricks Runtime 13.0-opdrachten %pip wordt het Python-proces niet automatisch opnieuw opgestart. Als u een nieuw pakket installeert of een bestaand pakket bijwerkt, moet u mogelijk de nieuwe pakketten zien dbutils.library.restartPython() . Zie Het Python-proces opnieuw opstarten in Azure Databricks.
  • In Databricks Runtime 12.2 LTS en hieronder wordt u aangeraden alle %pip opdrachten aan het begin van het notebook te plaatsen. De status van het notitieblok wordt opnieuw ingesteld na een %pip opdracht waarmee de omgeving wordt gewijzigd. Als u Python-methoden of -variabelen in een notebook maakt en vervolgens opdrachten in een latere cel gebruikt %pip , gaan de methoden of variabelen verloren.
  • Als u kernpakketten van Python (zoals IPython) %pip bijwerkt, wijzigt of verwijdert, werken sommige functies mogelijk niet meer zoals verwacht. Als u dergelijke problemen ondervindt, stelt u de omgeving opnieuw in door het notitieblok los te koppelen en opnieuw te koppelen of door het cluster opnieuw te starten.

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 opdracht gebruiken %pip uninstall 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 wilt installeren vanuit een privéopslagplaats, geeft u de URL van de opslagplaats op met de --index-url optie of %pip install voegt u het toe aan het pip configuratiebestand op ~/.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-wielbestanden pip moet u de naam van het bestand gebruiken perioden in de versie (bijvoorbeeld 0.1.0) en afbreekstreepjes in plaats van spaties of onderstrepingstekens, zodat deze bestandsnamen niet worden 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 %pip u een privépakket installeren dat is opgeslagen op een volume.

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-wielbestanden pip moet u de naam van het bestand gebruiken perioden in de versie (bijvoorbeeld 0.1.0) en afbreekstreepjes in plaats van spaties of onderstrepingstekens, zodat deze bestandsnamen niet worden 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 De bestandsindeling Vereisten voor meer informatie over requirements.txt bestanden.

Hoe groot moet het stuurprogrammaknooppunt zijn bij het werken met bibliotheken met notebookbereik?

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_DS5_v2 voor een CPU-cluster van 100 knooppunten.
  • Gebruik Standard_NC12 voor een GPU-cluster met 10 knooppunten.

Gebruik voor grotere clusters een groter stuurprogrammaknooppunt.

Kan ik gebruiken %sh pip, !pipof pip? Wat is het verschil?

%shen ! voer een shell-opdracht uit in een notebook; het eerste is een Databricks-hulp-magic-opdracht terwijl de laatste 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 %pip%sh pip!pip installeert u een bibliotheek als een Python-bibliotheek met notebookbereik. In Databricks Runtime 10.4 LTS en hieronder wordt u aangeraden alleen %pip bibliotheken met notebookbereik te gebruiken of pip 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 notebookbibliotheken niet compatibel met batchstreamingtaken. Databricks raadt aan om in plaats daarvan clusterbibliotheken of de IPython-kernel te gebruiken.