環境テンプレートのカスタマイズの例
環境テンプレートを作成するときに、 Python および R 用に提供されているテンプレートを使用して、conda または pip を介してカスタム・ライブラリーを追加する方法の例に従うことができます。
以下の conda の例では、conda の代わりにマンバを使用できます。 Mamba から既存の環境テンプレートにチャネルまたはパッケージを追加する場合は、マンバからインストールするチェック・ボックスを選択することを忘れないでください。
以下に例を示します:
- conda パッケージの追加
- pip パッケージの追加
- conda パッケージと pip パッケージの結合
- 内部依存関係を持つ複合パッケージの追加
- 「R」 ノートブックの conda パッケージの追加
- 環境変数の設定
ヒントは以下のとおりです:
conda パッケージの追加
pandas-profiling の最新バージョンを取得するには、以下のようにします。
dependencies:
- pandas-profiling
これは、ノートブックで conda install pandas-profiling
を実行するのと同等です。
pip パッケージの追加
特定のパッケージが conda チャネルで使用できない場合は、 pip
を使用して環境をカスタマイズすることもできます:
dependencies:
- pip:
- ibm-watson-machine-learning
これは、ノートブックで pip install ibm-watson-machine-learning
を実行するのと同等です。
カスタマイズは、実際には、指定された pip
パッケージをインストールするだけではありません。 conda
のデフォルトの動作では、 pip
自体の新規バージョンも検索してインストールします。 conda
ですべての暗黙的依存関係を検査するには、多くの場合は数分かかり、また数ギガバイトのメモリーも必要となります。 以下のカスタマイズにより、 pip
のインストールがショートカットされます:
channels:
- empty
- nodefaults
dependencies:
- pip:
- ibm-watson-machine-learning
conda チャネル empty
はパッケージを提供しません。 特に pip
パッケージはありません。 conda
は pip
のインストールを試行せず、事前にインストールされているバージョンを代わりに使用します。 チャネルのリスト内のキーワード nodefaults
は、リスト内に少なくとも 1 つの他のチャネルを必要とすることに注意してください。 それ以外の場合、 conda
はキーワードを暗黙的に無視し、デフォルト・チャネルを使用します。
conda パッケージと pip パッケージの結合
複数のパッケージを 1 行に 1 パッケージずつリストできます。 単一のカスタマイズで、conda パッケージと pip パッケージの両方を使用できます。
dependencies:
- pandas-profiling
- scikit-learn=0.20
- pip:
- watson-machine-learning-client-V4
- sklearn-pandas==1.8.0
必要なテンプレート表記は、先行スペースが重要であることに注意してください。 conda パッケージのリスト内の各項目には、2 つの先行スペースが必要です。 pip パッケージのリスト内の各項目には、4 つの先行スペースが必要です。 conda パッケージのバージョンは、単一の等号 (=
) を使用して指定する必要があります。一方、pip パッケージのバージョンは、2 つの等号 (==
) を使用して追加する必要があります。
内部依存関係を持つ複合パッケージの追加
多数のパッケージを追加する場合、または多数の内部依存関係を持つ 1 つの複合パッケージを追加する場合、conda のインストールに時間がかかったり、エラー・メッセージが表示されずに conda のインストールが停止したりすることがあります。 これを防ぐには、以下のようにします。
- 追加するパッケージのバージョンを指定します。 これにより、conda が依存関係を解決するための検索スペースが低減します。
- 環境のメモリー・サイズを増やします。
.condarc
ファイルに定義されているデフォルトの conda チャネルの代わりに、特定のチャネルを使用します。 これにより、大きなチャネルで長時間の検索が実行されるのを防ぎます。
デフォルトの conda チャネルを使用しないカスタマイズの例:
# get latest version of the prophet package from the conda-forge channel
channels:
- conda-forge
- nodefaults
dependencies:
- prophet
このカスタマイズは、ノートブックでの以下のコマンドに相当します。
!conda install -c conda-forge --override-channels prophet -y
「R」 ノートブックの conda パッケージの追加
以下の例は、R ノートブックで使用する conda パッケージを追加するカスタマイズを作成する方法を示しています:
channels:
- defaults
dependencies:
- r-plotly
このカスタマイズは、ノートブックでの以下のコマンドに相当します。
print(system("conda install r-plotly", intern=TRUE))
conda 内の 「R」 パッケージの名前は、通常、接頭部 r-
で始まります。 カスタマイズで plotly
のみを使用する場合、インストールは成功しますが、「R」 パッケージの代わりに Python パッケージがインストールされます。 その後、 library(plotly)
のように 「R」 コードでパッケージを使用しようとすると、エラーが返されます。
環境変数の設定
以下の例に示すように、ソフトウェア・カスタマイズ・テンプレートに変数セクションを追加することにより、環境変数を設定できます。
variables:
my_var: my_value
HTTP_PROXY: https://myproxy:3128
HTTPS_PROXY: https://myproxy:3128
NO_PROXY: cluster.local
この例では、変数セクションを使用して、環境のプロキシー・サーバーを設定できることも示しています。
パッケージのインストール時に、conda は、環境内で構成されている HTTP_PROXY 変数および HTTPS_PROXY 変数を使用しません。 プロキシー・サーバーを使用するように conda を構成するには、 プロキシー・サーバーを使用するための conda または mamba の構成を参照してください。
制限: この方法を使用して、既存の環境変数 (LD_LIBRARY_PATH など) をオーバーライドすることはできません。
ベスト・プラクティス
パッケージの検出や競合する依存関係の解決において発生する可能性がある問題を防ぐため、まず、テスト環境でノートブックを使用して必要なパッケージを手動でインストールします。 これにより、エラーなしでパッケージをインストールできるかどうかを対話式に確認できます。 パッケージがすべて正しくインストールされたことを確認したら、開発環境または実稼働環境のカスタマイズを作成し、パッケージをカスタマイズ・テンプレートに追加します。
親トピック: 環境のカスタマイズ