カテゴリ:

:doc:`/sql-reference/functions-system`(システム関数)

SYSTEM$RESOLVE_PYTHON_PACKAGES

指定されたPythonパッケージの解決済み依存関係とそのバージョンのリストを返します。この関数は、Anacondaとアーティファクトレポジトリ(PyPI)の両方のパッケージで動作します。

構文

SYSTEM$RESOLVE_PYTHON_PACKAGES( '<python_version>', '<package_spec_string>', ['<artifact_repository_name>'] )
Copy

引数

python_version

Pythonランタイムのバージョンを指定する文字列(例: '3.12')

package_spec_string

PACKAGES 句形式(例: $$('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')$$);
Copy

結果は依存関係とそのバージョンのリストです。

["_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');
Copy

例3:基本パッケージのみを取得する

次の例では、Python 3.12のベースパッケージのみを返します。

SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$()$$);
Copy

結果には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", ...]

こちらもご覧ください