Как исправить ошибку развертывания существующего приложения Django в Elastic Beanstalk?«Ваш WSGIPath ссылается на файл, который не существует» - PullRequest
0 голосов
/ 16 апреля 2019

Обзор

Я создал приложение Django на своей машине, которое работает локально, используя: python manage.py runserver

Я хочу развернуть его в AWS Elastic Beanstalk, чтобы сделать его публичнымвидимый.Я использовал pip для установки eb cli и запустил eb init и настроил все мои настройки.

Когда я закачиваюсь и вручную загружаю свой код в среду AWS, я получаю сообщение об ошибке в моем файле wsgi.py:

Your WSGIPath refers to a file that does not exist.

Я уже посмотрелна другие вопросы здесь, в SO, я посмотрел на структуру моего проекта (см. ниже), мои файлы .gitignore и .ebignore, я перезапустил свою среду и попробовал различные пути для файла wsgi.py.

Структура проекта

fresh_air/ ------------------> This is the folder that I zip up
\ -- .ebextensions
     \ -- django.config
\ -- .elasticbeanstalk
     \ -- config.yml
\ -- some other auxiliary apps that assist the main app
\ -- fresh_air/ --------------> My main app
     \ -- static/
     \ -- __init__.py
     \ -- settings.py
     \ -- urls.py
     \ -- views.py
     \ -- wsgi.py 
\ -- .ebignore (empty file, just there to overwrite .gitignore)
\ -- .gitignore
\ -- manage.py
\ -- requirements.txt

django.config

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

config.yml

branch-defaults:
  default:
    environment: FreshAir-env
environment-defaults:
  FreshAir-env:
    branch: null
    repository: null
global:
  application_name: fresh-air
  default_ec2_keyname: null
  default_platform: arn:aws:elasticbeanstalk:us-west-2::platform/Python 3.6 running
    on 64bit Amazon Linux/2.8.2
  default_region: us-west-2
  include_git_submodules: true
  instance_profile: null
  platform_name: null
  platform_version: null
  profile: eb-cli
  sc: null
  workspace_type: Application

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'fresh_air.settings')

application = get_wsgi_application()

Журналы ошибок Elastic Beanstalk

Iожидается, что WSGIPath, предоставленный в django.config, будет правильным и приведет прямо к wsgi.py, но, похоже, он этого не делает.Может ли это быть причиной того, что я сначала создал приложение Django, а затем попытался сделать его совместимым с Elastic Beanstalk?

...