Categorias:

Funções do sistema (funções do sistema)

SYSTEM$RESOLVE_PYTHON_PACKAGES

Retorna uma lista das dependências resolvidas, e as respectivas versões, para os pacotes Python que foram especificados. Essa função é compatível com pacotes do Anaconda e do Repositório de artefatos (PyPI).

Sintaxe

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

Argumentos

python_version

Cadeia de caracteres que especifica a versão do tempo de execução do Python (por exemplo, «3.12»).

package_spec_string

Especificações de pacotes no formato da cláusula PACKAGES (por exemplo, $$('numpy>=1.20.0', 'pandas==1.3.0')$$). Use $$()$$ para retornar apenas pacotes base (tempo de execução do Python e suas dependências).

artifact_repository_name

Opcional. Cadeia de caracteres que especifica o nome do repositório de artefatos (por exemplo, «snowflake.snowpark.pypi_shared_repository»). Se nada for inserido ou estiver vazio, usa o repositório Anaconda padrão.

Retornos

Retorna uma matriz JSON que contém os pacotes resolvidos e suas dependências. Cada elemento da matriz é uma cadeia de caracteres no seguinte formato: <package_name>==<version_name>. O resultado sempre inclui pacotes base (por exemplo, tempo de execução do Python e bibliotecas do sistema).

Requisitos de controle de acesso

Esta função pode ser chamada por qualquer usuário. Não são necessários privilégios especiais.

Notas de uso

  • Ao contrário de SHOW_PYTHON_PACKAGES_DEPENDENCIES, que funciona apenas com pacotes do Anaconda, SYSTEM$RESOLVE_PYTHON_PACKAGES funciona com pacotes do Anaconda e do repositório de artefatos (PyPI).

  • A função cria uma UDF temporária internamente para resolver as dependências do pacote e faz a limpeza automática.

  • Use essa função quando precisar determinar todas as dependências para pacotes que serão incluídos em uma política de pacotes.

Exemplos

Exemplo 1: resolver pacotes do Anaconda

O exemplo a seguir retorna uma lista de dependências dos pacotes Python numpy e pandas com o tempo de execução do Python 3.12 do repositório Anaconda padrão:

SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('numpy>=1.20.0', 'pandas==1.3.0')$$);
Copy

O resultado é uma lista das dependências e suas versões:

["_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", ...]

Exemplo 2: resolver pacotes do repositório de artefatos (PyPI)

O exemplo a seguir resolve o pacote scikit-learn de um repositório de artefatos PyPI:

SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('scikit-learn')$$, 'snowflake.snowpark.pypi_shared_repository');
Copy

Exemplo 3: obter apenas pacotes base

O exemplo a seguir retorna apenas os pacotes base para o Python 3.12:

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

O resultado contém o tempo de execução do Python e as dependências do sistema:

["_libgcc_mutex==0.1", "ca-certificates==2024.9.24", "libffi==3.4.4",
"openssl==3.0.15", "python==3.12.20", "readline==8.2", ...]

Consulte também