- 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>'] )
Arguments¶
python_versionChaîne spécifiant la version de l’environnement d’exécution Python (par ex. ’3.12’).
package_spec_stringSpé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_nameEn 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_PACKAGESfonctionne 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')$$);
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');
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', $$()$$);
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 :¶
SHOW_PYTHON_PACKAGES_DEPENDENCIES - Renvoie les dépendances pour les paquets Anaconda uniquement (nécessite le rôle ACCOUNTADMIN)
Politiques de paquets - Politiques des paquets pour Python
Utilisation de paquets tiers - Utilisation des paquets Python dans les UDFs