Развертывание на Heroku для Django с каналами не удалось

Я пытаюсь развернуть на Heroku Django, но это не работает, и некоторые журналы отображаются. Я в растерянности, потому что не знаю причины. Мне интересно, может ли кто-нибудь подсказать, что мне делать, или дать несколько советов...

Журналы героку (веб)

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

журналы хероку (рабочий)

unicodeerror: label empty or too long

backend(имя проекта)/asgi.py

import os
import api.routing
import django


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
django.setup()


from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.security.websocket import OriginValidator
from django.core.asgi import get_asgi_application

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': OriginValidator(
        AuthMiddlewareStack(
            URLRouter(
                api.routing.websocket_urlpatterns,
            )
        ),
        [
            'http://localhost:3000',
            'http://127.0.0.1:3000'
        ]
    )

backend(имя проекта)/wsgi.py

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
django.setup()

from dj_static import Cling
from django.core.wsgi import get_wsgi_application


application = Cling(get_wsgi_application())

backend(имя проекта)/setting.py(отрывок)

.
.
.
WSGI_APPLICATION = 'backend.wsgi.application'
ASGI_APPLICATION = 'backend.asgi.application'


CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [(env('REDIS_URL'), env('REDIS_PORT'))],
        },
    },
}
.
.
.

Procfile

release: python manage.py migrate
web: daphne backend.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python manage.py runworker channels --settings=backend.settings -v2

manage.py

import os
import sys
import django


def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
    django.setup()
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()
Вернуться на верх