我正在尝试将我的第一个应用程序部署到EB,并且正在遵循此惯例:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
[不幸的是,在部署最终应用程序时,我仍然收到502错误。我很困惑,因为我遵循了发球台上的指示。
我遇到以下错误
ImportError: Failed to find application, did you mean 'ebdjango/wsgi:application'?
我不确定这是什么意思。按照说明,我编辑了django.config文件以包含以下文本:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: ebdjango/wsgi.py
这似乎与我的文件结构匹配:
- ebdjango
-.ebextensions
- django.config
- .elasticbeanstalk
- ebdjango
_ __init__.py
- settings.py
- urls.py
- wsgi.py
- manage.py
- requirements.txt
所以配置文件设置正确,对吗?
我正在运行Python 3.7和Django 2.2。
[我知道EB搜索了application.py,我认为配置文件应该将服务器指向我的自定义应用程序?我在这里想念什么?
编辑:我也收到此错误:
ModuleNotFoundError: No module named 'ebdjango/wsgi'
我的文件结构有问题吗?
编辑2:我忘记在帖子中包含init。py文件,请参阅Ben的评论。
在您的django.config中更改:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: ebdjango.wsgi
以及您的
import os
from django.core.wsgi import get_wsgi_application
os.environ["DJANGO_SETTINGS_MODULE"] = "ebdjango.settings"
application = get_wsgi_application()
今天我在django.config文件中遇到了同样的问题。当我将配置选项卡中的WSGI路径更改为ebdjango.wsgi:application时,它终于对我有用。
我有同样的问题。这是由于Amazon Linux 2机器映像。其配置文件与旧版本不兼容。请参阅:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.migration-al.html。我最终使用了旧版本,因为文档中说: