channels.asgi.InvalidChannelLayerError:没有为默认值指定BACKEND

时间:2016-09-27 21:58:09

标签: python django backend django-channels

我正在尝试使用django app的频道。我已经安装了所有必需的依赖项(我认为)。我在myapp / settings.py的INSTALLED_APPS上列出了“频道”。但是,我运行了daphne(daphne chat.asgi:channel_layer --port 8888) - (cmd上没有错误消息),然后当我运行python manage.py runworker时出现错误消息这说 - “channels.asgi.InvalidChannelLayerError:没有指定默认的BACKEND”。 。我是django的新手,我有asgi.py作为

import os
import channels.asgi

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "chat.settings")
channel_layer = channels.asgi.get_channel_layer()

但是在我的myapp / settings.py中,我已经指定了默认指定的BACKEND。您能建议一个解决此错误的方法吗? Here是一个可能的解决方案,但asgi_redis在我的django1.10中是最新的。我正试图在我的本地机器上运行myapp。

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            #"hosts": [os.environ.get('REDIS_URL', 'redis://localhost:6379')],

        },
        "ROUTING": "myproject.myapp.routing.channel_routing",
    },
}

1 个答案:

答案 0 :(得分:0)

将其添加到settings.py

的顶部
import asgi_redis

另外,请确保已安装Redis

pip install asgi_redis