%condaコマンドによるライブラリの管理(レガシー)
このドキュメントは廃止されており、更新されない可能性があります。 このコンテンツに記載されている製品、サービス、またはテクノロジはサポートされなくなりました。 ノートブック スコープの Python ライブラリを参照してください。
%conda コマンドは非推奨であり、Databricks Runtime 7.3 LTS ML でのみサポートされます。 Databricks では、ノートブック スコープのライブラリの管理に %pip を使用することをお勧めします。 conda を使用してのみインストールできる Python ライブラリが必要な場合は、 conda ベースの Docker コンテナを使用して、必要なライブラリをプレインストールできます。
株式会社アナコンダは、2020年9月に anaconda.org チャンネルの サービス規約 を更新しました。 新しいサービス条件に基づき、Anacondaのパッケージングと配布に依存する場合は、商用ライセンスが必要になる場合があります。 詳細については、 Anaconda Commercial Edition の FAQ を参照してください。 Anacondaチャンネルの使用は、その 利用規約に準拠します。
この変更の結果、DatabricksはCondaパッケージマネージャーのデフォルトのチャネル設定を削除しました。これは互換性に影響する変更です。
%condaコマンドを使用してパッケージをインストールまたは更新するには、 -cを使用してチャンネルを指定する必要があります。また、 %conda install と %sh conda install のすべての使用法を更新して、 -cを使用してチャンネルを指定する必要があります。 チャンネルを指定しない場合、conda コマンドは PackagesNotFoundErrorで失敗します。
%conda コマンドは conda コマンドと同等で、同じ API をサポートしますが、以下に示すいくつかの制限があります。次のセクションでは、 %conda コマンドを使用して環境を管理する方法の例を示します。 conda を使用した Python パッケージのインストールの詳細については、 conda のインストールに関するドキュメントを参照してください。
%condaマジックコマンドは Databricks Runtime では使用できません。これらは、Databricks Runtime 7.3 LTS ML でのみ使用できます。 Databricks では、 pip を使用してライブラリをインストールすることをお勧めします。 詳細については、「 conda と pip について」を参照してください。
ノートブックで %pip コマンドと %conda コマンドの両方を使用する必要がある場合は、「pip コマンドと conda コマンドの相互作用」を参照してください。
次の conda コマンドは、 %condaと一緒に使用するとサポートされません。
activatecreateinitrunenv createenv remove
ライブラリのインストール %conda
%conda install matplotlib -c conda-forge
ライブラリのアンインストール %conda
%conda uninstall matplotlib
環境を保存して再利用または共有する
ノートブックをクラスターからデタッチすると、環境は保存されません。 環境を保存して、後で再利用したり、他のユーザーと共有したりするには、次の手順に従います。
Databricks では、環境は、同じバージョンの Databricks Runtime MLを実行しているクラスター間でのみ共有することをお勧めします。
-
環境をconda YAML仕様として保存します。
Python%conda env export -f /dbfs/myenv.yml -
conda env updateを使用してファイルを別のノートブックにインポートします。Python%conda env update -f /dbfs/myenv.yml
ノートブックの Python 環境を一覧表示する
ノートブックに関連付けられた Python 環境を表示するには、次の %conda listを使用します。
%conda list
pip コマンドと conda コマンド間の相互作用
競合を避けるために、 pip または conda を使用して Python パッケージとライブラリをインストールするときは、次のガイドラインに従ってください。
- ライブラリ APIまたはクラスター UI を使用してインストールされたライブラリは、
pipを使用してインストールされます。ライブラリが API または クラスター UI からインストールされている場合、ノートブック スコープのライブラリをインストールするときには%pipコマンドのみを使用する必要があります。 - クラスターでノートブックスコープのライブラリを使用する場合、そのクラスターでのinitスクリプト実行は、
condaまたはpipコマンドを使用してライブラリをインストールできます。 ただし、initスクリプトにpipコマンドが含まれている場合は、ノートブックの%pipコマンドのみを使用してください(%condaコマンドではありません)。 pipコマンドのみを使用するか、condaコマンドのみを使用するのが最善です。一部のパッケージをcondaを使用してインストールし、一部のパッケージをpipを使用してインストールする必要がある場合は、最初にcondaコマンドを実行してから、pipコマンドを実行します。詳細については、「Conda環境での pip の使用」を参照してください。
よくある質問(FAQ)
クラスター UI/API からインストールされたライブラリは、ノートブックスコープのライブラリとどのように相互作用しますか?
クラスターUIまたは API からインストールされたライブラリは、クラスター上のすべてのノートブックで使用できます。 これらのライブラリは、 pip;したがって、クラスター UI を使用してライブラリをインストールする場合は、ノートブック %pip コマンドのみを使用してください。
initスクリプトを使用してインストールされたライブラリは、ノートブックスコープのライブラリとどのように相互作用しますか?
initスクリプトを使用してインストールされたライブラリは、クラスター上のすべてのノートブックで使用できます。
クラスターを実行している Databricks Runtime MLでノートブックスコープのライブラリを使用する場合、クラスタでのinitスクリプト実行は、condaまたはpipコマンドを使用してライブラリをインストールできます。 ただし、initスクリプトに pip コマンドが含まれている場合は、ノートブック %pip コマンドのみを使用してください。
たとえば、次のノートブック コード スニペットは、高速にインストールされるスクリプトを生成します。すべてのクラスター ノード上の AI パッケージ。
dbutils.fs.put("dbfs:/home/myScripts/fast.ai", "conda install -c pytorch -c fastai fastai -y", True)
ジョブ ノートブックで %pip コマンドと %conda コマンドを使用できますか?
はい。
%pip コマンドと %conda コマンドは R または Scala ノートブックで使用できますか?
はい、 Pythonのマジックセルで。
%sh pip、!pip、pipは使えますか?違いは何ですか?
%sh ノートブックでシェルコマンドを実行する ! 。前者はDatabricks の補助魔法コマンド であり、後者はIPythonの機能です。 pip は、%pip が有効になっている場合の省略形であり、 これは automagic の default Databricks Python ノートブックです。
Databricks Runtime 11.0以降では、%pip 、 %sh pip、および!pipはどれも、ライブラリをノートブックスコープのPythonライブラリとしてインストールします。Databricks Runtime 10.4 LTS以前のバージョンでは、%pipまたはpipのみを使用して、ノートブックスコープのライブラリをインストールすることをお勧めしています。Databricks Runtime 10.4 LTS以前の場合、%sh pipと!pipの動作に一貫性はありません。
%condaコマンドを使用してRパッケージを更新できますか?
いいえ。
既知の問題
%conda env updateを使用してノートブック環境を更新する場合、パッケージのインストール順序は保証されません。これにより、horovodパッケージに問題が生じる可能性があり、horovod.tensorflowまたはhorovod.torchを使用するには、tensorflowとtorchをhorovodの前にインストールする必要があります。これが発生した場合は、horovodパッケージをアンインストールし、依存関係がインストールされていることを確認してから再インストールします。- Databricks Runtime 9.1 LTS では、ノートブック スコープのライブラリはバッチ ストリーミング ジョブと互換性がありません。 Databricks は、 代わりにクラスター ライブラリ または IPython カーネル を使用することをお勧めします。