Django AWS Elastic Beanstalk WSGIPath 引用了一个不存在的文件

Posted

技术标签:

【中文标题】Django AWS Elastic Beanstalk WSGIPath 引用了一个不存在的文件【英文标题】:Django AWS Elastic Beanstalk WSGIPath refers to a file that does not exist 【发布时间】:2016-08-22 16:09:12 【问题描述】:

到目前为止,我已经尝试了所有建议,但似乎没有任何效果。我用 Cookiecutter 创建了一个新的 Django 项目。我可以在本地和通过我的 Docker 机器运行它,但由于某种原因,我无法将它部署到 AWS。我也一直在松散地遵循这个文档:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-configure-for-eb

.ebextensions/django.config

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

项目结构

~/project
|-- .ebextensions
|-- `-- django.config
|-- .elasticbeanstalk
|-- `--config.yml
|--config
|-- | ...
|-- | wsgi.py
|-- project
|-- manage.py

当我检查日志时,这是我得到的示例:

Target WSGI script not found or unable to stat: /opt/python/current/app/application.py

当我运行 eb config 时,我得到了这些设置:

  aws:elasticbeanstalk:container:python:
    NumProcesses: '1'
    NumThreads: '15'
    StaticFiles: /static/=static/
    WSGIPath: application.py

我试过编辑这个,移动 wsgi.py 文件,重命名它,但没有任何效果。我做错了什么?

【问题讨论】:

与我的唯一不同的是文件格式。这是我的文件:github.com/dkarchmer/django-aws-template/blob/master/server/… 但是检查 wsgi.py 和 manage.py 的内容并将它们与我的比较。你总是可以只添加一个 application.py 来代替 感谢@dkarchmer。我的 manage 和 wsgi 和你的差不多。当您说添加 application.py 时,这是否只是意味着复制并粘贴我的 wsgi.py 文件的内容并将它们保存到 application.py 文件中?如果是这样,application.py 文件是否意味着要保存在根目录下? 【参考方案1】:

我的问题是我做了代码更改,但我没有提交它们。当我尝试使用eb deploy 部署到弹性beantalk 时,它正在部署引用application.py 而不是myproject/wsgi.py 的旧代码

【讨论】:

以上是关于Django AWS Elastic Beanstalk WSGIPath 引用了一个不存在的文件的主要内容,如果未能解决你的问题,请参考以下文章

Django AWS Elastic Beanstalk 迁移数据库

AWS Elastic BeansTalk Django cronjob 发布请求返回 403 错误

在 AWS Elastic Beanstalk 上设置 Django:未找到 WSGIPath

如何设置运行 Django 的 AWS Elastic Beanstalk Docker 平台?

使用环境变量在 AWS Elastic Beanstalk 上使用 django 运行 celery

通过 AWS Elastic Beanstalk 部署 Django 应用程序会破坏 CSS 路径