Abhängigkeiten angeben

Abhängigkeiten für Python-Anwendungen werden in einer Standarddatei vom Typ requirements.txt deklariert. Beispiel:

Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Ersetzen Sie MAJOR, MINOR und PATCH durch die gewünschten Flask-Versionsnummern.

Wenn Sie in App Engine bereitstellen, werden die in der Datei requirements.txt angegebenen Abhängigkeiten automatisch mit der bereitgestellten Anwendung installiert. Sie können jedes Linux-kompatible Python-Paket verwenden, auch Pakete, die native C-Erweiterungen erfordern.

Standardmäßig werden abgerufene Abhängigkeiten von App Engine zwischengespeichert, um die Build-Zeiten zu reduzieren. Mit dem folgenden Befehl können Sie eine nicht zwischengespeicherte Version der Abhängigkeit installieren:

gcloud app deploy --no-cache

Private Abhängigkeiten mit Artifact Registry

Wenn Sie private Abhängigkeiten für Ihre Python-Anwendung hosten müssen, können Sie ein Artifact Registry-Python-Repository verwenden. Beim Bereitstellen der Anwendung werden beim Build-Prozess automatisch Artifact Registry-Anmeldedaten für das Cloud Build-Dienstkonto generiert. Sie müssen also keine zusätzlichen Anmeldedaten generieren. Fügen Sie die Artifact Registry-URL und die relevanten Pakete in der Datei requirements.txt hinzu, um private Abhängigkeiten einzubeziehen.

Wenn Sie mehrere Repositories angeben möchten, verwenden Sie ein virtuelles Artifact Registry-Repository. Damit können Sie die Reihenfolge steuern, in der pip Ihre Repositories durchsucht. Beispiel:

--index-url REPOSITORY_URL
sampleproject
Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Ersetzen Sie REPOSITORY_URL durch die Registry-Adresse, z. B.:

https://REGION_ID-python.pkg.dev/PROJECT_ID/REPOSITORY_NAME/simple

Private Abhängigkeiten mit anderen Repositories

Abhängigkeiten werden in einer Umgebung von Cloud Build installiert, die keinen Zugriff auf SSH-Schlüssel bietet. In Repositories gehostete Pakete, für die eine SSH-basierte Authentifizierung erforderlich ist, müssen in das Projektverzeichnis kopiert und zusammen mit dem Code Ihres Projekts hochgeladen werden. Hierzu wird der Paketmanager "pip" verwendet.

So verwenden Sie private Abhängigkeiten:

  1. pip install -t lib my_module ausführen, um Abhängigkeiten in einen lokalen Ordner mit dem Namen lib zu kopieren.

  2. Fügen Sie dem Verzeichnis lib eine leere __init__.py-Datei hinzu, um sie zu einem Modul zu machen.

  3. Importieren Sie das Modul in Ihre Anwendung. Beispiel:

    import lib.my_module
    

Abhängigkeiten lokal installieren

Wenn Sie eine Anwendung lokal entwickeln und testen, empfehlen wir dringend die Verwendung von venv. Sie können damit die Abhängigkeiten der Anwendung von den Systempaketen isolieren. Das gewährleistet auch, dass Ihre Abhängigkeiten auf Ihrem lokalen Computer und der bereitgestellten Anwendung dieselbe Version haben.

Mit den folgenden Schritten installieren Sie die Abhängigkeiten mit venv.

Mac OS/Linux

  1. Erstellen Sie eine isolierte Python-Umgebung:
    python3 -m venv env
    source env/bin/activate
  2. Wenn Sie sich nicht in dem Verzeichnis befinden, das den Beispielcode enthält, wechseln Sie zu dem Verzeichnis, das den Beispielcode hello_world enthält: Installieren Sie dann Abhängigkeiten:
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Windows

Führen Sie Ihre Python-Pakete mit PowerShell aus.

  1. Wechseln Sie zu Ihrer Installation von PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf die Verknüpfung zu PowerShell und starten Sie diese als Administrator.
  3. Erstellen Sie eine isolierte Python-Umgebung.
    python -m venv env
    .\env\Scripts\activate
  4. Gehen Sie zu Ihrem Projektverzeichnis und installieren Sie die Abhängigkeiten: Wenn Sie sich nicht in dem Verzeichnis befinden, das den Beispielcode enthält, wechseln Sie zum Verzeichnis mit dem Beispielcode hello_world. Installieren Sie dann Abhängigkeiten:
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Dadurch wird sichergestellt, dass bei der lokalen Ausführung der Anwendung nur die in der Datei requirements.txt deklarierten Abhängigkeiten verfügbar sind. Die während der Bereitstellung von App Engine installierten Abhängigkeiten basieren auf dem Inhalt der Datei requirements.txt, nicht auf dem Inhalt des Verzeichnisses env/.

Web-Framework installieren

Sie müssen ein Web-Framework verwenden, damit Ihre Anwendung Webanfragen verarbeiten kann. Sie können ein beliebiges Python-Web-Framework verwenden, zum Beispiel:

Wenn Sie ein bestimmtes Web-Framework verwenden möchten, fügen Sie es einfach Ihrem requirements.txt hinzu:

Flask==MAJOR.MINOR.PATCH

WSGI-Server installieren

Einige Web-Frameworks haben integrierte WSGI-Server. Davon sind jedoch nur einige für den Produktions-Traffic geeignet. Die meisten Webanwendungen verwenden einen eigenständigen WSGI-Server wie Gunicorn, uWSGI oder Waitress. Weitere Informationen zur Installation, Konfiguration und Verwendung eines WSGI-Servers finden Sie unter Anwendungsstart.

Cloud-Clientbibliotheken installieren

Die Cloud-Clientbibliothek für Python ist eine Clientbibliothek für den Zugriff auf Google Cloud-Dienste, die den von Ihnen zu schreibenden Boilerplate-Code erheblich reduziert. Die Bibliothek bietet API-Abstraktionen auf übergeordneter Ebene, sodass sie einfacher zu verstehen sind. Sie umfasst Idiome von Python, funktioniert gut mit der Python-Standardbibliothek und lässt sich noch besser in Ihre Codebasis einbinden.

Sie können beispielsweise die entsprechende Python-Clientbibliothek für Datastore oder Cloud Storage installieren, um diese Dienste mit Ihrer Anwendung zu verknüpfen.

So installieren Sie die Python-Clientbibliothek für Cloud Datastore:

  1. Installieren Sie die Clientbibliothek lokal mithilfe von pip:

    pip install google-cloud-datastore

  2. Richten Sie die Authentifizierung ein. Sie können die Cloud-Clientbibliotheken für Python so konfigurieren, dass die Authentifizierung automatisch ausgeführt wird. Die Clientbibliothek kann auch lokal automatisch die Authentifizierung mithilfe der Google Cloud CLI ausführen:

    gcloud auth login
    
  3. Implementieren Sie die Unterstützung für den Datastore-Dienst in Ihrer Anwendung. Informationen dazu finden Sie in der Referenz zu den Cloud Datastore-Clientbibliotheken.

Eine vollständige Liste aller Cloud-Clientbibliotheken für Python für die unterstützten Google Cloud-Dienste finden Sie unter APIs und Python-Bibliotheken.