注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
初期化が遅いことは、通常、環境定義が大きすぎるか、複雑すぎることを意味します。環境内のパッケージ数に応じて、初期化時間は超線形的に増加する傾向があります。また、Foundry は一般的によく使われる環境を事前に初期化するため、デフォルトプロファイルに基づいてカスタム環境を作成した場合、遅さはおそらく事前に初期化された環境をもう受け取らないためです。新しい環境が作成されるのを待つ必要があります。環境作成プロセスについての詳細は、環境作成の概要を参照してください。
以下を試してみてください。
python
のように多くの可能なバージョンがあるパッケージや、scipy
のように依存関係グラフが複雑なパッケージに対して行うと効果的です。特定のパッケージを追加することで環境が遅くなった場合、そのパッケージのバージョンを固定してみてください。
python=3.6.10
はそのバージョンのみに一致しますが、python=3.6
は python 3.6.x
のいずれかに一致するため、満たしやすくなります。環境の初期化に失敗した場合、環境起動エラーログを表示して、何が悪いかについての追加情報を確認できます。
ログの最初の行は、「Execution failed with non-zero exit code:」という文字列に続いて整数のエラーコードが表示されます。このエラーコードは、特定の失敗モードを示しています。
このエラーは、指定されたパッケージの一部(および/またはその依存関係)が互換性がないか、インストールできないことを示しています。環境設定パネルでの最近の変更が初期化の失敗を引き起こした場合、変更を元に戻してみてください。以下は、一般的な環境解決エラーのリストです。
Palantir は、環境初期化エラーメッセージのフォーマットを改善することで、オープンソースの Mamba コミュニティに貢献しました。2023年2月以降、Foundry サービスは、環境の失敗によって侵害される依存関係ツリーをより正確に表すエラーを利用できるようになりました。
これらの新しいメッセージを理解する方法、解釈する方法、および修復する方法についてのアドバイスについては、新しいエラーメッセージを参照してください。
以下は、新しい Mamba エラーメッセージが導入される前の、レガシーエラーメッセージからの一般的なエラーメッセージのリストです。
この場合、設定されたチャネルのどれもが、パッケージ A
依存関係を提供していません。
Copied!1
問題:要求されたA.a.a.aを提供するものがありません
この問題は、ピン留めされたパッケージのバージョンが存在しない場合に発生することがあります。この場合、meta.yml
の中でパッケージのバージョン指定を緩めるか削除してみてください。たとえば、matplotlib 1.1.1
を matplotlib
に変更することができます。また、別の原因として、環境マネージャが指定されたバージョンをインストールするために必要なパッケージを見つけることができなかったことも考えられます。
このケースでは、パッケージ A
が必須の依存関係 B
を含んでいるが、それがどのチャンネルからも提供されていない状況です。
Copied!1
問題: A-a.a.a に必要な B-b.b.b を提供するものがありません:
B
はユーザーが明示的に要求したパッケージ(meta.yml/foundry-ml/vector
プロファイル内)であるか、または間接的な依存関係である場合があります。
これは、B
がユーザーのエンロールメントにインストールできない場合に発生することがあります。たとえば、B
がリコールされたため、インストールできない状態になっているかもしれません。
この場合、A
の固定バージョンを削除して、すべての依存関係が利用可能なA
のバージョンがあるかどうかを確認するか、またはPalantirの担当者に連絡して、必要なパッケージをFoundryにインポートしてもらってください。
Copied!1 2
// X.a.b.c と X.d.e.f の両方をインストールできません cannot install both X.a.b.c and X.d.e.f
このエラーは、同じパッケージ X
をインストールし、両方に対して異なるバージョンのピン留めを試みると発生します。例えば、meta.yml
で python 3.6.*
と python 3.7.*
の両方をピン留めしようとするとこのエラーが発生するかもしれません。この問題は、重複したパッケージのピン留めのうち1つを削除することで解決できます。
Copied!1 2
// CondaService:ReadRepositoryPermissionDenied // Condaサービス:リポジトリ読取り権限拒否
このエラーが表示される場合、エンロールメントに必要なアセットやパッケージが利用できない可能性があります。
この場合、パッケージ A
がパッケージ B
のバージョンに依存していますが、このバージョンの B
が他のパッケージと競合します:
Copied!1
問題: パッケージ A-a.a.a は B >=2.2.5,<2.3.0a0 を要求しますが、インストールできるプロバイダが存在しません
このメッセージは、特定のバージョンのパッケージBが必要であるが、そのバージョンが利用可能でないため、パッケージA-a.a.aをインストールできないことを示しています。
B
パッケージは、環境で明示的に要件としてリストされていない A
の推移的依存関係を指している場合があります。推移的依存関係についての詳細は、Resolved Environment のドキュメントを参照してください。
環境の失敗を修復するには、次の手順を検討してください。
STDOUT
を確認します。このエラーは、通常、環境の初期化に必要なメモリがSparkモジュールで利用可能なメモリよりも多いことを示しています。環境設定パネルでの最近の変更が初期化の失敗を引き起こした場合、変更を元に戻してみてください。それ以外の場合、以下の提案のうち1つ以上を試してみてください。
不要なパッケージをすべて削除し、残りのパッケージの一部を特定のバージョンに固定した後も、環境の初期化に失敗する場合は、Palantirの代表者に連絡し、試したデバッグ手順の詳細を含めてください。
上記にリストされていないエラーコードで環境の初期化に失敗し、リトライしても環境が再び失敗する場合は、Palantirの代表者に連絡し、エラーログの全文を含めてください。
デフォルトのプロファイルが時々素早く初期化され、時々時間がかかることを想定しています。後者の場合、Mambaが環境仕様を解決し、WorkbookをバックアップするSparkモジュールにインストールするのを待っています。これがデフォルトの動作です。前者の場合、事前に初期化されたモジュールを取得しているか、環境仕様がキャッシュ内の解決済み環境と一致してすぐにインストールできる状態になっています。多くのユーザーが同時にワークブックを開いている場合、事前に初期化されたモジュールを取得する可能性が低く、新しいモジュールが起動されるのを待たなければなりません。
一部のパッケージは、CondaパッケージとJARの両方が必要であるため、利用可能になります。一般的な例は、graphframesパッケージです。このようなパッケージには特別なセットアッププロセスが必要であり、このパッケージがインスタンスに対して以前に設定されていない場合、ビルド時に次のエラーが発生することがあります。
Copied!1 2
// o257.loadClass.: java.lang.ClassNotFoundException:<Class> // o257.loadClass: Java言語のクラスが見つからない例外:<クラス>
JARファイルは、コントロールパネルのConda環境設定タブの詳細セクションで、プロファイルの設定に追加することができます(Code Workbookプロファイルの設定を参照してください)。 このようなパッケージの設定に関してサポートが必要な場合は、Palantirの担当者にお問い合わせください。
上記のガイダンスが問題を解決するのに十分でない場合や、このガイドの範囲外の問題に遭遇した場合は、Palantirの担当者に連絡し、試みたデバッグ手順の詳細を含めてください。