- カテゴリ:
:doc:`/sql-reference/functions-system`(システム関数)
SYSTEM$RESOLVE_PYTHON_PACKAGES¶
指定されたPythonパッケージの解決済み依存関係とそのバージョンのリストを返します。この関数は、Anacondaとアーティファクトレポジトリ(PyPI)の両方のパッケージで動作します。
構文¶
SYSTEM$RESOLVE_PYTHON_PACKAGES( '<python_version>', '<package_spec_string>', ['<artifact_repository_name>'] )
引数¶
python_versionPythonランタイムのバージョンを指定する文字列(例: '3.12')
package_spec_stringPACKAGES 句形式(例:
$$('numpy>=1.20.0', 'pandas==1.3.0')$$):code:$$()$$を使用してベースパッケージ(Pythonランタイムとその依存関係)のみを返します。artifact_repository_nameオプション。アーティファクトリポジトリ名を指定する文字列(例: 'snowflake.snowpark.pypi_shared_repository')提供されていないか空の場合、デフォルトのAnacondaリポジトリを使用します。
戻り値¶
解決されたパッケージとその依存関係を含む JSON 配列を返します。配列の各要素は、次の形式の文字列です: :code:`<package_name>==<version_name>`結果には常にベースパッケージ(例: Pythonランタイムやシステムライブラリ)が含まれます。
アクセス制御の要件¶
この関数はどのユーザーでも呼び出すことができます。特別な権限は必要ありません。
使用上の注意¶
Anacondaパッケージでのみ動作する SHOW_PYTHON_PACKAGES_DEPENDENCIES とは異なり、
SYSTEM$RESOLVE_PYTHON_PACKAGESはAnacondaとアーティファクトリポジトリ(PyPI)の両方のパッケージで動作します。この、パッケージの依存関係を解決するために内部的に仮 UDF を作成し、それを自動的にクリーンアップします。
この関数は、パッケージポリシーに含まれるパッケージの依存関係をすべて決定する必要がある場合に使用します。
例¶
例1:Anacondaからパッケージを解決
次の例は、デフォルトのAnacondaリポジトリからのPython 3.12ランタイムを使用した numpy および pandas Pythonパッケージの依存関係のリストを返します。
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('numpy>=1.20.0', 'pandas==1.3.0')$$);
結果は依存関係とそのバージョンのリストです。
["_libgcc_mutex==0.1", "_openmp_mutex==5.1", "blas==1.0", "ca-certificates==2024.9.24",
"intel-openmp==2023.1.0", "libffi==3.4.4", "libgcc-ng==11.2.0", "numpy==1.24.3",
"pandas==1.5.3", "python==3.12.20", "readline==8.2", "sqlite==3.45.3", ...]
例2:Artifactリポジトリからパッケージを解決(PyPI)
次の例では、 PyPI アーティファクトリポジトリから scikit-learn パッケージを解決します。
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('scikit-learn')$$, 'snowflake.snowpark.pypi_shared_repository');
例3:基本パッケージのみを取得する
次の例では、Python 3.12のベースパッケージのみを返します。
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$()$$);
結果にはPythonランタイムとシステムの依存関係が含まれます。
["_libgcc_mutex==0.1", "ca-certificates==2024.9.24", "libffi==3.4.4",
"openssl==3.0.15", "python==3.12.20", "readline==8.2", ...]
こちらもご覧ください¶
SHOW_PYTHON_PACKAGES_DEPENDENCIES : Anacondaパッケージの依存関係のみを返します(ACCOUNTADMIN ロールが必要です)
パッケージポリシー : Python用パッケージポリシー
サードパーティパッケージの使用 : UDFs でのPythonパッケージの使用