- 类别:
:doc:`/sql-reference/functions-system`(系统函数)
SYSTEM$RESOLVE_PYTHON_PACKAGES¶
返回指定 Python 包的解析依赖项及其版本的列表。此函数支持来自 Anaconda 和 Artifact Repository (PyPI) 的包。
语法¶
实参¶
python_version指定 Python 运行时版本的字符串(例如 '3.12')。
package_spec_string采用 PACKAGES 子句格式的包规范(例如
$$('numpy>=1.20.0', 'pandas==1.3.0')$$)。使用$$()$$仅返回基础包(Python 运行时及其依赖项)。artifact_repository_name可选。指定 Artifact Repository 名称的字符串(例如 'snowflake.snowpark.pypi_shared_repository')。如果未提供或为空,则使用默认的 Anaconda 存储库。
返回¶
返回一个包含已解析包及其依赖项的 JSON 数组。数组中的每个元素都是一个采用如下格式的字符串: <package_name>==<version_name>。结果始终包含基础包(例如 Python 运行时和系统库)。
访问控制要求¶
任何用户都可以调用此函数。无需特殊权限。
使用说明¶
与仅适用于 Anaconda 包的 SHOW_PYTHON_PACKAGES_DEPENDENCIES 不同,
SYSTEM$RESOLVE_PYTHON_PACKAGES适用于来自 Anaconda 和 Artifact Repository (PyPI) 的包。该函数在内部创建一个临时 UDF 以解析包依赖关系,并会自动进行清理。
当您需要确定包策略中包含的包的所有依赖项时,请使用此函数。
示例¶
示例 1:从 Anaconda 解析包
以下示例返回来自默认 Anaconda 存储库、基于 Python 3.12 运行时的 numpy 和 pandas Python 包的依赖项列表:
结果是依赖项及其版本的列表:
示例 2:解析来自 Artifact Repository (PyPI) 的包
以下示例解析来自 PyPI Artifact Repository 的 scikit-learn 包:
示例 3:仅获取基础包
以下示例仅返回 Python 3.12 的基础包:
结果包含 Python 运行时和系统依赖项:
另请参阅¶
SHOW_PYTHON_PACKAGES_DEPENDENCIES – 仅返回 Anaconda 包的依赖项(需要 ACCOUNTADMIN 角色)
包策略 – 适用于 Python 的包策略
使用第三方包 - 在 UDFs 中使用 Python 包