django.core.exceptions.ImproperlyConfigured: приложение WSGI '{имя_проекта} .wsgi.application' не может быть загружено;Ошибка при импорте модуля - PullRequest
0 голосов
/ 16 июня 2019

Я не могу понять, почему я сталкиваюсь с ошибкой при запуске Heroku run python manage.py runserver

Я попытался изменить имена папок и попытался удалить и добавить WhiteNoise в MIDDLEWARE

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 'django.middleware.security.SecurityMiddleware',
    # 'whitenoise.middleware.WhiteNoiseMiddleware',
]

настройки базы данных

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

django_heroku.settings(locals())

wsgi.py

import os

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

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

application = get_wsgi_application()
application = DjangoWhiteNoise(application)

по крайней мере сервер должен работать, чтобы я мог видеть, в чем проблема с Heroku.

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

Согласно documentation конфигурация промежуточного программного обеспечения должна быть такой:

MIDDLEWARE = [
    <b>'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',</b>
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

И вы также можете удалить строки, связанные с белым шумом, из файла wsgi:

import os

from django.core.wsgi import get_wsgi_application
#  from whitenoise.django import DjangoWhiteNoise

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

application = get_wsgi_application()
#  application = DjangoWhiteNoise(application)

Поскольку в whitenoise >= 4.0 вам не нужно вносить изменения в файл wsgi.

0 голосов
/ 16 июня 2019

Ваш wsgi.py файл неверен.

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{PROJECT}}.settings')

Приведенный выше код является проблемой, вам нужно заменить {{ project }} на ваше фактическое имя приложения.

Это имя папки, где settings.pyрасположен.

Например, если это структура вашего проекта.

blog
      ...
    - settings.py
    - wsgi.py
      ...

Тогда правильный код будет os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'blog.settings')

...