Geben Sie die Anwendungsabhängigkeiten für unterstützte Python-Versionen mit einer der folgenden Methoden an:
Verwenden Sie eine
requirements.txt-Datei im Stammverzeichnis. Diese Datei muss sich im selben Verzeichnis wie diemain.py-Datei befinden, die den Quellcode enthält. Dierequirements.txt-Datei enthält eine Zeile pro Paket. Jede Zeile enthält den Paketnamen und optional die angeforderte Version. Es empfiehlt sich, Ihre Abhängigkeitspakete an eine bestimmte Version anzuheften, um zu verhindern, dass Ihr Build von Änderungen an der Abhängigkeitsversion beeinträchtigt wird.Hier sehen Sie eine
requirements.txt-Beispieldatei:functions-framework requests==2.20.0 numpyVerwenden Sie eine
pyproject.toml-Datei, um Abhängigkeiten anzugeben. Wenn Sie die Anwendungsabhängigkeiten in einerpyproject.toml-Datei anstelle derrequirements.txt-Datei verwalten, bestimmt das Python-Buildpack den Paketmanager anhand der Konfiguration, die Sie in derpyproject.toml-Datei angeben. Weitere Informationen finden Sie unter Python-Anwendungen bereitstellen mit einerpyproject.tomlDatei.Wenn Ihre Anwendung sowohl die
pyproject.toml-Datei als auch dierequirements.txt-Datei verwendet, hat dierequirements.txt-Datei Vorrang.Hier sehen Sie eine
pyproject.toml-Beispieldatei:[project] name = "demo-app" version = "0.1.0" description = "" requires-python = ">=3.10" dependencies = [ "flask>=3.1.1", "gunicorn>=23.0.0", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta"
Paket mit lokalen Abhängigkeiten zusammen mit der Funktion erstellen.
Die Abhängigkeitsspezifikation mit dem Standard
Pipfile/Pipfile.lockwird nicht unterstützt. Das Projekt sollte diese Dateien nicht enthalten.Wenn Sie eine
requirements.txt-Datei zum Verwalten von Abhängigkeiten verwenden, installiert Cloud Run das Functions Framework für Sie, wenn Sie eine Funktion erstellen. Wir empfehlen jedoch, das Functions Framework als explizite Abhängigkeit anzugeben, um Abweichungen zu vermeiden.Wenn Sie eine
pyproject.toml-Datei verwenden, müssen Sie das Functions Framework als Abhängigkeit angeben, da Cloud Run es nicht für Sie installiert.
Paketmanager
Wenn Sie Ihre Abhängigkeiten mit einer requirements.txt file verwalten, variiert der Standardpaket
manager je nach der konfigurierten Python-Version.
Wenn Sie eine pyproject.toml-Datei anstelle einer requirements.txt-Datei zum Verwalten von Abhängigkeiten verwenden, bestimmt das Python-Buildpack den Paketmanager anhand der Konfigurationseinstellungen in der pyproject.toml-Datei. Das Buildpack unterstützt die Paketmanager pip, uv und Poetry. Weitere Informationen finden Sie unter Python-Anwendungen mit einer
pyproject.toml Datei.
Python 3.14 und höher
Ab Python Version 3.14 verwendet das Python
Buildpack den uv
Paketmanager als Standardinstallationsprogramm für die Abhängigkeiten, die Sie
in der requirements.txt Datei angeben.
Wenn Sie pip als Paketmanager verwenden möchten,
konfigurieren Sie die Umgebungsvariable GOOGLE_PYTHON_PACKAGE_MANAGER="pip".
Führen Sie den Befehl gcloud run deploy aus, um die Umgebungsvariable des Paketmanagers auf pip zu setzen:
gcloud run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=pip
Ersetzen Sie SERVICE durch den Namen Ihres Cloud Run-Dienstes.
Python 3.13 und früher
Für Python Version 3.13 und früher verwendet das Python
Buildpack den pip
Paketmanager, um die in der
requirements.txt
Datei definierten Abhängigkeiten zu installieren.
Wenn Sie uv als Paketmanager verwenden möchten,
konfigurieren Sie die Umgebungsvariable GOOGLE_PYTHON_PACKAGE_MANAGER="uv".
Führen Sie den Befehl gcloud run deploy aus, um die Umgebungsvariable des Paketmanagers auf uv zu setzen:
gcloud run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=uv
Ersetzen Sie SERVICE durch den Namen Ihres Cloud Run-Dienstes.
Paket mit lokalen Abhängigkeiten erstellen
Paket mit der Funktion und ihren Abhängigkeiten erstellen und bereitstellen. Dies ist nützlich, wenn Ihre Abhängigkeit nicht verfügbar ist, wenn Sie einen unterstützten Paketmanager verwenden, oder wenn der Internetzugriff Ihrer Cloud Run-Umgebung eingeschränkt ist.
Sie können auch die Datei requirements.txt verwenden, um zusätzliche Abhängigkeiten anzugeben, die sich nicht im Paket mit der Funktion befinden.
Beispielsweise können Sie die folgende Verzeichnisstruktur verwenden:
myfunction/
├── main.py
└── localpackage/
├── __init__.py
└── script.py
Importieren Sie den Code aus localpackage mit der folgenden import-Anweisung:
# code in main.py
from localpackage import script
Bei dieser Methode werden keine setup.py-Dateien ausgeführt. Sie können die Pakete mit diesen Dateien bündeln, aber das Paket wird in Cloud Run Functions möglicherweise nicht ordnungsgemäß ausgeführt.
Kopierte Abhängigkeiten
Kopierte Abhängigkeiten sind Abhängigkeiten, deren Quelle direkt in Ihrem Quellcodepaket enthalten und zusammen mit Ihrem eigenen Code neu erstellt wird.
Verwenden Sie die GOOGLE_VENDOR_PIP_DEPENDENCIES Build-Umgebungsvariable, um kopierte pip-Abhängigkeiten zu erstellen und deren Installation während der Bereitstellung zu vermeiden.
Kopierte Abhängigkeiten erstellen
Stellen Sie sicher, dass python3 auf Ihrem Entwicklungssystem installiert ist.
Deklarieren Sie die Anwendungsabhängigkeiten in einer
requirements.txt-Datei im Stammverzeichnis Ihrer Entwicklungsstruktur.Deklarieren Sie Functions Framework als Anforderung, indem Sie
functions-frameworkin eine separate Zeile in Ihrerequirements.txt-Datei aufnehmen.Laden Sie die Abhängigkeiten Ihrer Funktion in das lokale Verzeichnis herunter. Die dafür erforderlichen Schritte hängen davon ab, ob die Abhängigkeit eine Python-Rad-Datei (*.whl) oder eine TAR-Datei (*.tar.gz) ist.
Wenn die Abhängigkeit ein Python-Rad (*.whl) ist, laden Sie sie mit diesem pip-Befehl in das Stammverzeichnis Ihres Entwicklungsbaums herunter:
python3 -m pip download -r requirements.txt --only-binary=:all: \ -d DIRECTORY \ --python-version PYTHON_RUNTIME_VERSION \ --platform manylinux2014_x86_64 \ --implementation cpErsetzen Sie Folgendes:
- DIRECTORY: der Name des lokalen Verzeichnisses, in das heruntergeladen werden soll.
- PYTHON_RUNTIME_VERSION: die Python-Version, die für
Kompatibilitätsprüfungen verwendet werden soll. Beispiel:
314für Python 3.14.
Diese Version muss mit einer der unterstützten Python-Laufzeiten übereinstimmen.
Die resultierende Verzeichnisstruktur sollte so aussehen:
myfunction/ ├── main.py └── requirements.txt └── DIRECTORY ├── dependency1.whl └── dependency2.whl
Wenn die Abhängigkeit eine TAR-Datei (*.tar.gz) ist:
Wenn die Abhängigkeit in Python geschrieben ist, laden Sie sie von pip herunter:
python3 -m pip download -r requirements.txt \ -d DIRECTORYWenn eine Abhängigkeit aus Code besteht, der in C oder C++ geschrieben ist, laden Sie den Code herunter und kompilieren Sie ihn separat.
Stellen Sie die Funktion und die zugehörigen kopierten Abhängigkeiten bereit:
gcloud functions deploy FUNCTION_NAME \ --runtime PYTHON_RUNTIME_NAME \ --set-build-env-vars GOOGLE_VENDOR_PIP_DEPENDENCIES=DIRECTORYErsetzen Sie Folgendes:
- FUNCTION_NAME: der Name der Funktion, die Sie bereitstellen.
- PYTHON_RUNTIME_NAME: der Name einer der unterstützten Python-Laufzeiten , unter der die bereitgestellte Funktion ausgeführt wird, z. B. python311. Dies muss dieselbe Python-Laufzeitversion sein, die Sie in Ihrer lokalen Entwicklungsumgebung verwendet haben.
- DIRECTORY: der Name des Verzeichnisses, das Ihre kopierten Abhängigkeiten enthält.
Weitere Informationen zur Verwendung von Buildpacks finden Sie unter Funktion mit Buildpacks erstellen.
Private Abhängigkeiten verwenden
Sie können private Abhängigkeiten aus Artifact Registry oder aus anderen Repositories verwenden.
Private Abhängigkeiten von Artifact Registry
Ein Artifact Registry-Python
-Repository hostet private
Abhängigkeiten für Ihre Python-Funktion. Bei der Bereitstellung in Cloud Run,
generiert der Build-Prozess automatisch Artifact Registry-Anmeldedaten für das
Cloud Build-Dienstkonto.
Fügen Sie die Artifact Registry-URL in Ihre requirements.txt-Datei ein, ohne zusätzliche Anmeldedaten zu generieren. Beispiel:
--index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Wenn Ihr Build mehrere Repositories benötigt, können Sie mit einem virtuellen Artifact Registry-Repository die Reihenfolge, in der pip Ihre Repositories durchsucht, sicher steuern.
Private Abhängigkeiten aus anderen Repositories
Buildpacks installiert Abhängigkeiten in einer Cloud Build-Umgebung, die keinen Zugriff auf SSH-Schlüssel bietet. Kopieren Sie die Pakete, die Sie in Repositories hosten, für die eine SSH-basierte Authentifizierung erforderlich ist, und laden Sie die Pakete mit dem Code Ihres Projekts hoch.
Verwenden Sie den Befehl pip install mit dem
-t DIRECTORY Flag, um private Abhängigkeiten vor der Bereitstellung Ihrer Anwendung in
ein lokales Verzeichnis zu kopieren:
- Kopieren Sie Ihre Abhängigkeit in ein lokales Verzeichnis:
pip install -t DIRECTORY DEPENDENCY
- Fügen Sie dem Verzeichnis
DIRECTORYeine leere Datei__init__.pyhinzu, um es in ein Modul zu verwandeln. - Führen Sie einen Import aus diesem Modul durch, um Ihre Abhängigkeit zu verwenden:
import DIRECTORY.DEPENDENCY
Vorinstallierte Pakete
Das Python-Buildpack installiert die folgenden Python-Pakete, wenn Sie Ihre Funktion bereitstellen. Wenn Sie eines dieser Pakete in Ihrem Funktionscode verwenden, fügen Sie die folgenden Versionen in Ihre requirements.txt-Datei ein:
Um Probleme mit Versionsupdates von Abhängigkeiten zu vermeiden, pinnen Sie das Paket an eine bestimmte Version an.
Das Python-Buildpack installiert die folgenden Pakete, die an eine bestimmte Version angeheftet sind:
pip(neueste Version)setuptools(neueste Version)wheel(wird durch die Produktanforderungen bestimmt)
Die Python-Laufzeit enthält auch eine Reihe von System paketen in der Ausführungsumgebung.