- 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>'] )
Argumentos¶
python_versionCadeia de caracteres que especifica a versão do tempo de execução do Python (por exemplo, «3.12»).
package_spec_stringEspecificaçõ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_nameOpcional. 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_PACKAGESfunciona 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')$$);
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');
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', $$()$$);
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¶
SHOW_PYTHON_PACKAGES_DEPENDENCIES: retorna somente as dependências dos pacotes Anaconda (requer a função ACCOUNTADMIN)
Políticas de pacotes: políticas de pacotes para Python
Como usar pacotes de terceiros: uso de pacotes Python em UDFs