Fehlerbehebung bei der Installation von PyPI-Paketen

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird beschrieben, wie Sie Abhängigkeitskonflikte bei der Installation benutzerdefinierter PyPI-Pakete beheben können.

Das häufigste Problem bei PyPI-Paketen, die in Cloud Composer auftreten können, sind Abhängigkeitskonflikte.

Wenn Sie ein neues benutzerdefiniertes PyPI-Paket angeben, das installiert werden soll, können diese Pakete oder deren Version Abhängigkeiten in Konflikt mit anderen benutzerdefinierten PyPI-Paketen oder vorinstallierten Paketen in Ihrer Umgebung verursachen. In diesem Fall schlägt die Aktualisierung der Umgebung mit einem Fehler fehl.

Cloud Build-Fehler und Build-Fehler im Cluster

Wenn Probleme mit Paketen auftreten, erhalten Sie je nach Art der Bereitstellung Ihrer Umgebung die Fehlermeldungen auf zwei Arten:

  • Cloud Build Eine Fehlermeldung und ein Link zum Cloud Build-Log. Beispiel:

    UPDATE operation on this environment failed 25 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the Cloud Build log at ...
    
  • In-Cluster-Builds: Eine Fehlermeldung und der Speicherort von Build-Logs. Beispiel:

    UPDATE operation on this environment failed 17 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the in-cluster build logs for
    details. They can be found in the Environment logs under the build-log-*
    log name.
    

Detaillierte Fehlermeldung ansehen

Wenn eine Paketinstallation fehlschlägt, meldet pip die detaillierte Fehlermeldung. Diese Fehlermeldung finden Sie in den Build-Logs.

Den pip-Fehler in Cloud Build-Logs suchen

Sie können auf den Link in der Cloud Build-Fehlermeldung klicken oder Build-Logs suchen:

  1. Suchen Sie Build-Logs:

    1. Rufen Sie in der Google Cloud Console die Seite Build-Verlauf auf.

      ZUR SEITE "BUILD-VERLAUF"

    2. Wählen Sie den fehlgeschlagenen Build aus, um dessen Logs aufzurufen.

  2. Suchen Sie im Build-Log nach der Fehlermeldung von pip. Beispiel:

    ERROR: apache-airflow-backport-providers-google 2021.2.5 has requirement
    google-cloud-logging<3.0.0,>=2.1.1, but you'll have google-cloud-logging
    1.15.0 which is incompatible.
    

Den pip-Fehler in Build-Logs im Cluster suchen

  1. Suchen Sie Build-Logs:

    1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

      Zur Seite Umgebungen

    2. Wählen Sie Ihre Umgebung aus.

    3. Öffnen Sie den Tab Logs.

    4. Wählen Sie Alle Logs > Composer-Logs > Builds > Worker- und Scheduler-Image aus.

    5. Wählen Sie in der Drop-down-Liste Schweregrad die Option Info aus.

  2. In den angezeigten Logs:

    1. Suchen Sie nach der Fehlermeldung installer.sh. Beispiel:

      The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION
      fail' returned a non-zero code: 1
      
    2. Die Infonachrichten davor haben den detaillierten pip-Fehler. Beispiel:

      apache-airflow-backport-providers-google 2021.2.5 has requirement
      google-cloud-logging<3.0.0,>=2.1.1, but you have
      google-cloud-logging 1.15.0.
      

Konflikte mit vorinstallierten PyPI-Paketen

Zwischen den von Ihnen installierten benutzerdefinierten PyPI-Paketen und den vorinstallierten Paketen treten einige Paketkonflikte auf.

Sie können die vollständige Liste der vorinstallierten Pakete für Ihre Version von Cloud Composer auf der Seite Cloud Composer-Versionen

So können Sie lösen dieses Problem:

Metadatenserver nicht verfügbar, wenn PyPI-Pakete installiert werden

Wenn in Ihrer Umgebung eine benutzerdefinierte pip.conf-Datei verwendet wird, kann es zu einem Problem kommen, wenn keine neuen PyPI-Pakete in Ihrer Umgebung installiert werden können. In Cloud Build-Logs, die sich auf das Paket beziehen erhalten Sie die folgende Warnmeldung:

WARNING: Compute Engine Metadata server unavailable on attempt 3 of 3. Reason:
timed out
WARNING: Authentication failed using Compute Engine authentication due to
unavailable metadata server.

Dieses Problem wird durch eine pip.conf-Datei verursacht, die keinen Zugriff auf den Standardpaketindex unter http://pypi.org/simple zulässt. Wenn Ihre Datei pip.conf beispielsweise nur ermöglicht die Installation von Paketen aus einem benutzerdefinierten Artifact Registry-Repository, da den neu definierten index-url-Parameter, mit dem Pakete aus dem Standardpaketindex ist nicht verfügbar.

Achten Sie darauf, dass der http://pypi.org/simple-Paketindex wird zu Ihrer pip.conf-Datei hinzugefügt. Wenn der primäre Paketindex beispielsweise im Parameter index-url definiert ist, fügen Sie den Index http://pypi.org/simple in den Parameter extra-index-url ein.

Nächste Schritte