Django 通道错误 - 无法导入后端 'asgi_redis.RedisChannelLayer'
Django Channels Error - Cannot import BACKEND 'asgi_redis.RedisChannelLayer'
我已经安装了 Django-Channels,但是在 运行 daphne-server 时我收到以下错误:
File "/usr/local/lib/python2.7/dist-packages/channels/asgi.py", line 36, in make_backend
"Cannot import BACKEND %r specified for %s" % (self.configs[name]['BACKEND'], name)
channels.asgi.InvalidChannelLayerError: Cannot import BACKEND 'asgi_redis.RedisChannelLayer' specified for default
我的settings.py是:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [os.environ.get('REDIS_URL', 'redis://X.X.X.X:6379')],
},
"ROUTING": "MyProject.routing.channel_routing",
},
}
需要帮助解决此错误。
只需安装 'asgi_redis'。我假设它会在安装 Django-Channels 时默认安装,但事实并非如此。 'asgiref' 默认安装,而不是 'asgi_redis'。所以要解决这个问题,可以 运行:
> sudo pip install asgi_redis
在我的例子中,asgiref 版本 2.3.2 不兼容。我按如下方式将其降级,然后我的代码就可以工作了。
pip install asgiref==1.0.0
使用 asgiref-2.3.2 甚至更多,您需要安装 channel_redis.
不是asgi_redis。
pip install channel_redis
关于 Utkarsh 的回复已重命名为:
pip install channels-redis
我在使用 django-channels 时也遇到了同样的问题,按照文档示例 https://channels.readthedocs.io/en/latest/tutorial/index.html
你只需要将 channels-redis 安装为
pip install channels-redis
解决这个问题。
遇到了类似的问题。通过安装 channels_redis:
解决
pip install channels_redis
也在设置中使用通道redis:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
'ROUTING': 'ws.routing.application',
}
这对我有用。
daphne = "~=3.0.2"
channels = "~=3.0.4"
channels-redis = "~=3.3.1"
async-timeout = "~=3.0.1"
我已经安装了 Django-Channels,但是在 运行 daphne-server 时我收到以下错误:
File "/usr/local/lib/python2.7/dist-packages/channels/asgi.py", line 36, in make_backend
"Cannot import BACKEND %r specified for %s" % (self.configs[name]['BACKEND'], name)
channels.asgi.InvalidChannelLayerError: Cannot import BACKEND 'asgi_redis.RedisChannelLayer' specified for default
我的settings.py是:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [os.environ.get('REDIS_URL', 'redis://X.X.X.X:6379')],
},
"ROUTING": "MyProject.routing.channel_routing",
},
}
需要帮助解决此错误。
只需安装 'asgi_redis'。我假设它会在安装 Django-Channels 时默认安装,但事实并非如此。 'asgiref' 默认安装,而不是 'asgi_redis'。所以要解决这个问题,可以 运行:
> sudo pip install asgi_redis
在我的例子中,asgiref 版本 2.3.2 不兼容。我按如下方式将其降级,然后我的代码就可以工作了。
pip install asgiref==1.0.0
使用 asgiref-2.3.2 甚至更多,您需要安装 channel_redis.
不是asgi_redis。
pip install channel_redis
关于 Utkarsh 的回复已重命名为:
pip install channels-redis
我在使用 django-channels 时也遇到了同样的问题,按照文档示例 https://channels.readthedocs.io/en/latest/tutorial/index.html 你只需要将 channels-redis 安装为
pip install channels-redis
解决这个问题。
遇到了类似的问题。通过安装 channels_redis:
解决pip install channels_redis
也在设置中使用通道redis:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
'ROUTING': 'ws.routing.application',
}
这对我有用。
daphne = "~=3.0.2"
channels = "~=3.0.4"
channels-redis = "~=3.3.1"
async-timeout = "~=3.0.1"