/ bin / sh: 1: exec: gunicorn: nicht gefunden

Dec 16 2020

Ich versuche, eine einfache Django-App auf der Google Cloud App Engine bereitzustellen. Die App verfügt über grundlegende wsgi- und asgi-Server, auf denen wsgi HTTPS-Anforderungen und asgi Websocket-Anforderungen bearbeitet. Ich folge dem Tutorial zur Google App Engine, um die App bereitzustellen, und sie wird erfolgreich erstellt und bereitgestellt. Die installierten Pakete können jedoch nicht im bereitgestellten Arbeitsbereich gefunden werden.

Dies sind die Schritte, denen ich folge

gcloud init
virtualenv myenv
source activate myenv/bin/activate
pip install -r requirements.txt
gcloud app deploy

require.txt haben gunicorn und daphne und sie werden auch installiert.

Dies ist ein Fehler, den ich bekomme, wenn ich die bereitgestellte App im Browser öffne.

2020-12-15 20:48:25 my-service[20201216t014451]  /bin/sh: 1: exec: gunicorn: not found

So sieht meine app.yaml-Datei aus

runtime: python38
service: my-service
instance_class: F2

entrypoint: gunicorn -b :$PORT main:app
handlers:
  - url: /.*
    script: auto
    secure: always

inbound_services:
- warmup

automatic_scaling:
  min_instances: 1
  min_idle_instances: 1
  max_instances: 2
  max_idle_instances: 1

Ich habe auch versucht, den genauen Pfad im Einstiegspunkt zu übergeben, dh Einstiegspunkt: gunicorn -b: $ PORT main: app, habe aber den gleichen Fehler erhalten

Ich rufe die gcloud-App-Bereitstellung in meiner virtuellen Umgebung auf, aber wenn sie bereitgestellt wird, kann sie die installierten Pakete, dh Daphne und Gunicorn, nicht lesen. Beide funktionieren in der lokalen Umgebung im selben Verzeichnis mit denselben Paketen einwandfrei.

Ich habe auf diese Fragen bezeichnet dies und dies und die Antworten versucht , aber nichts funktionierte.

Antworten

1 MuhammadZeeshan Dec 16 2020 at 16:01

Die GAE-App-Engine benötigt die Datei require.txt im selben Verzeichnis wie app.yaml.

Meine Datei "resources.txt" befand sich in einem Unterordner. Aus diesem Grund konnte die Google App Engine "gunicorn" nicht installieren. Ich habe die Anforderungen lokal installiert und die installierten Anforderungen während der Bereitstellung übergeben, aber es scheint nicht erforderlich zu sein, sie lokal zu installieren (außer um Änderungen auf dem lokalen Server zu testen).