Catégories :

Fonctions système (fonctions système)

SYSTEM$RESOLVE_PYTHON_PACKAGES

Renvoie une liste des dépendances résolues et de leurs versions pour les paquets Python spécifiés. Cette fonction fonctionne avec les paquets d’Anaconda et d’Artifact Repository (PyPI).

Syntaxe

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

Arguments

python_version

Chaîne spécifiant la version de l’environnement d’exécution Python (par ex. ’3.12’).

package_spec_string

Spécifications du paquet au format de clause PACKAGES (par exemple, $$('numpy>=1.20.0', 'pandas==1.3.0')$$). Utilisez $$()$$ pour renvoyer uniquement les paquets de base (l’environnement d’exécution Python et ses dépendances).

artifact_repository_name

En option. Chaîne spécifiant le nom du référentiel de l’artefact (par exemple, “snowflake.snowpark.pypi_shared_repository”). Si non fourni ou vide, utilise le référentiel Anaconda par défaut.

Renvoie

Renvoie un tableau JSON qui contient les paquets résolus et leurs dépendances. Chaque élément du tableau est une chaîne au format suivant : <package_name>==<version_name>. Le résultat inclut toujours les paquets de base (par exemple, l’environnement d’exécution Python et les bibliothèques système).

Exigences en matière de contrôle d’accès

Cette fonction peut être appelée par n’importe quel utilisateur. Aucun privilège particulier n’est requis.

Notes sur l’utilisation

  • Contrairement à SHOW_PYTHON_PACKAGES_DEPENDENCIES, qui ne fonctionne qu’avec les paquets Anaconda, SYSTEM$RESOLVE_PYTHON_PACKAGES fonctionne avec les paquets Anaconda et Artifact Repository (PyPI).

  • La fonction crée en interne une UDF temporaire pour résoudre les dépendances des paquets et les nettoyer automatiquement.

  • Utilisez cette fonction lorsque vous devez déterminer toutes les dépendances des paquets qui seront inclus dans une politique de paquets.

Exemples

Exemple 1 : Résoudre des paquets depuis Anaconda

L’exemple suivant renvoie une liste des dépendances des paquets Python numpy et pandas avec l’environnement d’exécution Python 3.12 du référentiel Anaconda par défaut :

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

Le résultat est une liste des dépendances et de leurs versions.

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

Exemple 2 : Résoudre les paquets du Artifact Repository (PyPI)

L’exemple suivant résout le paquet scikit-learn depuis un référentiel d’artefacts PyPI :

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

Exemple 3 : Obtenir les paquets de base uniquement**

L’exemple suivant renvoie uniquement les paquets de base pour Python 3.12 :

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

Le résultat contient l’environnement d’exécution Python et les dépendances système :

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

Voir aussi :