Freigeben über


Verwalten von Bibliotheken mit %conda-Befehlen (Legacy)

Wichtig

Diese Dokumentation wurde eingestellt und wird unter Umständen nicht aktualisiert. Die in diesem Inhalt erwähnten Produkte, Dienste oder Technologien werden nicht mehr unterstützt. Informationen finden Sie unter Python-Bibliotheken im Notebook-Bereich.

Wichtig

%conda-Befehle sind veraltet und werden nur für Databricks Runtime 7.3 LTS ML unterstützt. Databricks empfiehlt die Verwendung von %pip zum Verwalten von Bibliotheken im Notebook-Bereich. Wenn Sie Python-Bibliotheken benötigen, die nur mit conda installiert werden können, können Sie conda-basierte Docker-Container verwenden, um die benötigten Bibliotheken vorab zu installieren.

Anaconda Inc. hat die Vertragsbedingungen für die Kanäle von anaconda.org im September 2020 aktualisiert. Basierend auf den neuen Nutzungsbedingungen benötigen Sie möglicherweise eine kommerzielle Lizenz, wenn Sie sich auf die Verpackung und Verteilung von Anaconda verlassen. Weitere Informationen finden Sie unter Anaconda Commercial Edition FAQ (Häufig gestellte Fragen zu Anaconda Commercial Edition). Jegliche Nutzung von Anaconda-Kanälen unterliegt den Anaconda-Vertragsbedingungen.

Aufgrund dieser Änderung hat Databricks die Standardkanalkonfiguration für den Conda-Paket-Manager entfernt. Dies ist eine wichtige Änderung.

Um Pakete mit dem %conda-Befehl zu installieren oder zu aktualisieren, müssen Sie einen Kanal mit -c angeben. Sie müssen außerdem die gesamte Verwendung von %conda install und %sh conda install aktualisieren, um einen Kanal mit -c anzugeben. Wenn Sie keinen Kanal angeben, wird für Conda-Befehle der Fehler PackagesNotFoundError angezeigt.

Der %conda-Befehl entspricht dem conda-Befehl und unterstützt dieselbe API mit einigen der unten aufgeführten Einschränkungen. Die folgenden Abschnitte enthalten Beispiele für die Verwendung von %conda-Befehlen zum Verwalten Ihrer Umgebung. Weitere Informationen zum Installieren von Python-Paketen mit conda finden Sie in der Dokumentation zur conda-Installation.

Beachten Sie, dass %conda-Magic-Befehle auf Databricks Runtime nicht verfügbar sind. Sie sind nur in Databricks Runtime 7.3 LTS ML verfügbar. Databricks empfiehlt die Verwendung von pip zum Installieren von Bibliotheken. Weitere Informationen finden Sie unter Grundlegendes zu Conda und pip.

Wenn Sie sowohl %pip- als auch %conda-Befehle in einem Notizbuch verwenden müssen, lesen Sie Interaktionen zwischen pip- und conda-Befehlen.

Hinweis

Die folgenden conda-Befehle werden nicht unterstützt, wenn sie mit %condaverwendet werden:

  • activate
  • create
  • init
  • run
  • env create
  • env remove

Installieren einer Bibliothek mit %conda

%conda install matplotlib -c conda-forge

Deinstallieren einer Bibliothek mit %conda

%conda uninstall matplotlib

Speichern und Wiederverwenden oder Freigeben einer Umgebung

Wenn Sie ein Notebook von einem Cluster trennen, wird die Umgebung nicht gespeichert. Führen Sie die folgenden Schritte aus, um eine Umgebung zu speichern, damit Sie sie später wiederverwenden oder für eine andere Person freigeben können.

Databricks empfiehlt, dass Umgebungen nur zwischen Clustern gemeinsam genutzt werden, welche dieselbe Version von Databricks Runtime ML ausführen.

  1. Speichern Sie die Umgebung als Conda-YAML-Spezifikation.

    %conda env export -f /dbfs/myenv.yml
    
  2. Importieren Sie die Datei über conda env update in ein anderes Notebook.

    %conda env update -f /dbfs/myenv.yml
    

Auflisten der Python-Umgebung eines Notebooks

Verwenden Sie %conda list, um die einem Notebook zugeordnete Python-Umgebung anzuzeigen:

%conda list

Interaktionen zwischen pip- und conda-Befehlen

Um Konflikte zu vermeiden, befolgen Sie diese Richtlinien, wenn Sie pip oder conda verwenden, um Python-Pakete und -Bibliotheken zu installieren.

  • Bibliotheken, die mithilfe der Bibliotheks-API oder der Clusterbenutzeroberfläche installiert werden, werden mit pip installiert. Wenn Bibliotheken über die API oder die Clusterbenutzeroberfläche installiert wurden, sollten Sie beim Installieren von Bibliotheken im Notebook-Bereich nur %pip-Befehle verwenden.
  • Wenn Sie Bibliotheken im Notebook-Bereich in einem Cluster verwenden, können in diesem Cluster ausgeführte Initialisierungsskripts entweder conda- oder pip-Befehle verwenden, um Bibliotheken zu installieren. Wenn das Initialisierungsskript jedoch pip-Befehle enthält, verwenden Sie nur %pip-Befehle in Notebooks (nicht %conda).
  • Es ist am besten, entweder pip-Befehle ausschließlich oder conda-Befehle ausschließlich zu verwenden. Wenn Sie einige Pakete mit conda und einige mit pip installieren müssen, führen Sie zuerst die conda-Befehle aus, und führen Sie danach die pip-Befehle aus. Weitere Informationen finden Sie unter Verwenden von Pip in einer Conda-Umgebung.

Häufig gestellte Fragen (FAQ)

Wie interagieren Bibliotheken, die über die Clusterbenutzeroberfläche/-API installiert werden, mit Bibliotheken im Notebook-Bereich?

Bibliotheken, die über die Clusterbenutzeroberfläche oder -API installiert werden, sind für alle Notebooks im Cluster verfügbar. Diese Bibliotheken werden mit pip installiert. Wenn Bibliotheken über die Clusterbenutzeroberfläche installiert werden, verwenden Sie daher nur %pip-Befehle in Notebooks.

Wie interagieren Bibliotheken, die mithilfe eines Initialisierungsskripts installiert werden, mit Bibliotheken im Notebook-Bereich?

Bibliotheken, die mit einem Initialisierungsskript installiert werden, sind für alle Notebooks im Cluster verfügbar.

Wenn Sie Bibliotheken im Notebook-Bereich in einem Cluster verwenden, auf dem Databricks Runtime ML läuft, können die auf dem Cluster ausgeführten Init-Skripte entweder die Befehle conda oder pip verwenden, um Bibliotheken zu installieren. Wenn das Initialisierungsskript jedoch pip-Befehle enthält, dann verwenden Sie nur %pip-Befehle in Notebooks.

Mit diesem Notebook-Codeausschnitt wird beispielsweise ein Skript generiert, das fast.ai-Pakete auf allen Clusterknoten installiert.

dbutils.fs.put("dbfs:/home/myScripts/fast.ai", "conda install -c pytorch -c fastai fastai -y", True)

Kann ich %pip- und %conda-Befehle in Auftragsnotebooks verwenden?

Ja.

Kann ich %pip- und %conda-Befehle in R- oder Scala-Notebooks verwenden?

Ja, in einer Python-Magic-Zelle.

Kann ich %sh pip, !pip oder pip verwenden? Worin besteht der Unterschied?

%sh und ! führen einen Shell-Befehl in einem Notebook aus. Ersteres ist ein zusätzlicher Magic-Befehl von Databricks, während letzteres ein Feature von IPython ist. pip ist eine Abkürzung für %pip, wenn automagic aktiviert ist, was die Standardeinstellung in Azure Databricks Python-Notebooks ist.

Unter Databricks Runtime 11.0 und höher installieren %pip, %sh pip und !pip alle eine Bibliothek als Python-Bibliothek im Notebook-Bereich. Für Databricks Runtime 10.4 LTS und niedriger empfiehlt Databricks, nur %pip oder pip zu verwenden, um auf den Notebookbereich bezogene Bibliotheken zu installieren. Das Verhalten von %sh pip und !pip ist in Databricks Runtime 10.4 LTS und niedriger nicht konsistent.

Kann ich R-Pakete mit %conda-Befehlen aktualisieren?

Nein.

Bekannte Probleme

  • Wenn Sie %conda env update verwenden, um eine Notebookumgebung zu aktualisieren, ist die Installationsreihenfolge von Paketen nicht garantiert. Dies kann zu Problemen für das horovod-Paket führen, welches erfordert, dass tensorflow und torch vor horovod installiert werden müssen, um horovod.tensorflow bzw. horovod.torch zu verwenden. Deinstallieren Sie in diesem Fall das horovod-Paket, und installieren Sie es neu, nachdem Sie sichergestellt haben, dass die Abhängigkeiten installiert sind.
  • In Databricks Runtime 9.1 LTS sind Bibliotheken im Notebookbereich nicht mit Batchstreamingaufträgen kompatibel. Databricks empfiehlt stattdessen die Verwendung von Clusterbibliotheken oder dem IPython-Kernel.