web-dev-qa-db-fra.com

AWS Elastic Beanstalk: chemin WSGI incorrect?

J'essaye de déployer ma première application sur EB et je suis avec ce turorial: https://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-Django.html

Malheureusement, j'obtiens toujours une erreur 502 lors du déploiement de l'application finale. Je suis confus parce que j'ai suivi les instructions vers le tee.

J'obtiens l'erreur suivante

ImportError: Failed to find application, did you mean 'ebdjango/wsgi:application'?

Je ne sais pas ce que cela signifie. Selon les instructions, j'ai édité le fichier Django.config pour inclure ce texte:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango/wsgi.py

Cela semble correspondre à ma structure de fichiers:

- ebdjango
  -.ebextensions
    - Django.config
  - .elasticbeanstalk
  - ebdjango
    _ __init__.py
    - settings.py
    - urls.py
    - wsgi.py
  - manage.py
  - requirements.txt

Le fichier de configuration est donc correctement configuré, non?

J'exécute Python 3.7 et Django 2.2.

Je sais qu'EB recherche application.py et je pensais que le fichier de configuration était censé pointer le serveur vers mon application personnalisée? Qu'est-ce que j'oublie ici?

EDIT: J'obtiens également cette erreur:

ModuleNotFoundError: No module named 'ebdjango/wsgi'

Quelque chose ne va pas dans la structure de mes fichiers?

EDIT 2: J'ai oublié d'inclure le fichier init . Py dans mon message, voir le commentaire de Ben.

6
Jon Hrovat

J'ai eu le même problème aujourd'hui avec le fichier Django.config. Cela a finalement fonctionné pour moi lorsque j'ai changé le chemin WSGI dans l'onglet de configuration en ebdjango.wsgi: application.

1
kml

Dans votre changement Django.config:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango.wsgi

Et dans votre

import os
from Django.core.wsgi import get_wsgi_application
os.environ["Django_SETTINGS_MODULE"] = "ebdjango.settings"
application = get_wsgi_application()
0