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>'] )
Copy

Argumente

python_version

Zeichenfolge (String), die die Version der Python-Laufzeitumgebung angibt (z. B. ‚3.12‘).

package_spec_string

Paketspezifikationen 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_name

Optional. 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_PACKAGES mit 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')$$);
Copy

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');
Copy

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', $$()$$);
Copy

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: