- Kategorien:
Systemfunktionen (Systemfunktionen)
SYSTEM$RESOLVE_PYTHON_PACKAGES¶
Gibt eine Liste der aufgelösten Abhängigkeiten und ihrer Versionen für die angegebenen Python-Pakete zurück. Diese Funktion funktioniert mit Paketen sowohl aus Anaconda als auch aus dem Artefakt-Repository (PyPI).
Syntax¶
SYSTEM$RESOLVE_PYTHON_PACKAGES( '<python_version>', '<package_spec_string>', ['<artifact_repository_name>'] )
Argumente¶
python_versionZeichenfolge (String), die die Version der Python-Laufzeitumgebung angibt (z. B. ‚3.12‘).
package_spec_stringPaketspezifikationen im PACKAGES-Klausel-Format (z. B.
$$('numpy>=1.20.0', 'pandas==1.3.0')$$). Verwenden Sie$$()$$, um nur Basispakete (Python-Laufzeitumgebung und deren Abhängigkeiten) zurückzugeben.artifact_repository_nameOptional. Zeichenfolge, die den Namen des Artefakt-Repositorys angibt (z. B. ‚snowflake.snowpark.pypi_shared_repository‘). Wenn nicht angegeben oder leer, wird das Standard-Anaconda-Repository verwendet.
Rückgabewerte¶
Gibt ein JSON-Array zurück, das die aufgelösten Pakete und deren Abhängigkeiten enthält. Jedes Element in dem Array ist eine Zeichenfolge im folgenden Format: <package_name>==<version_name>. Das Ergebnis enthält immer Basispakete (z. B. Python-Laufzeitumgebung und Systembibliotheken).
Anforderungen an die Zugriffssteuerung¶
Diese Funktion kann von jedem Benutzer aufgerufen werden. Es sind keine besonderen Berechtigungen erforderlich.
Nutzungshinweise¶
Im Gegensatz zu SHOW_PYTHON_PACKAGES_DEPENDENCIES, das nur mit Anaconda-Paketen funktioniert, arbeitet
SYSTEM$RESOLVE_PYTHON_PACKAGESmit Paketen sowohl aus Anaconda als auch aus dem Artefakt-Repository (PyPI).Die Funktion erstellt intern eine temporäre UDF, um Paketabhängigkeiten aufzulösen und automatisch zu bereinigen.
Verwenden Sie diese Funktion, wenn Sie alle Abhängigkeiten von Paketen ermitteln müssen, die in eine Paketrichtlinie aufgenommen werden.
Beispiele¶
Beispiel 1: Auflösen von Paketen aus Anaconda
Das folgende Beispiel gibt eine Liste der Abhängigkeiten der Python-Pakete numpy und pandas mit der Python 3.12-Laufzeitumgebung aus dem Standard-Anaconda-Repository zurück:
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('numpy>=1.20.0', 'pandas==1.3.0')$$);
Das Ergebnis ist eine Liste der Abhängigkeiten und ihrer Versionen:
["_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", ...]
Beispiel 2: Auflösen von Paketen aus dem Artefakt-Repository (PyPI)
Im folgenden Beispiel wird das scikit-learn-Paket aus einem PyPI Artefakt-Repository aufgelöst:
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$('scikit-learn')$$, 'snowflake.snowpark.pypi_shared_repository');
Beispiel 3: Nur Basispakete abrufen
Das folgende Beispiel gibt nur die Basispakete für Python 3.12 zurück:
SELECT SYSTEM$RESOLVE_PYTHON_PACKAGES('3.12', $$()$$);
Das Ergebnis enthält die Python-Laufzeitumgebung und Systemabhängigkeiten:
["_libgcc_mutex==0.1", "ca-certificates==2024.9.24", "libffi==3.4.4",
"openssl==3.0.15", "python==3.12.20", "readline==8.2", ...]
Siehe auch:¶
SHOW_PYTHON_PACKAGES_DEPENDENCIES – Gibt nur Abhängigkeiten für Anaconda-Pakete zurück (erfordert ACCOUNTADMIN-Rolle)
Paketrichtlinien – Paketrichtlinien für Python
Verwenden von Drittanbieter-Paketen – Verwendung von Python-Paketen in UDFs