Django Channels Error – Cannot import BACKEND 'asgi_redis.RedisChannelLayer'
Question:
I have installed Django-Channels but while running the daphne-server I am getting this error given below:
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
My settings.py is:
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",
},
}
Need help in resolving this error.
Answers:
Just needed to install ‘asgi_redis’. I was assuming that it would have gotten installed by default while installing Django-Channels, but it doesn’t. ‘asgiref’ gets installed by default and not ‘asgi_redis’. So to solve this issue, one can just run:
> sudo pip install asgi_redis
In my case asgiref version 2.3.2 was not compatible. I downgraded it as follows and then my code worked.
pip install asgiref==1.0.0
With asgiref-2.3.2 and maybe more, you need to install channel_redis.
NOT asgi_redis.
pip install channel_redis
In regard to Utkarsh’s reply itt’s been renamed to:
pip install channels-redis
I also faced same problem while working with django-channels, by following the documentation examples https://channels.readthedocs.io/en/latest/tutorial/index.html
you just need to install channels-redis as
pip install channels-redis
to resolve this issue.
Faced the similar issue. Solved it by installing channels_redis:
pip install channels_redis
Also using channel redis in setting too:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
'ROUTING': 'ws.routing.application',
}
That did the thing for me.
daphne = "~=3.0.2"
channels = "~=3.0.4"
channels-redis = "~=3.3.1"
async-timeout = "~=3.0.1"
I know this is an old post, however, I got the same problem and I got the solution from this link:
https://github.com/django/channels_redis/issues/113#issuecomment-405071710
based on Andrewgodwin he says:
"asgi-redis is an outdated package (the previous version of channels_redis). You can uninstall it to solve this error."
and that worked for me
I have installed Django-Channels but while running the daphne-server I am getting this error given below:
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
My settings.py is:
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",
},
}
Need help in resolving this error.
Just needed to install ‘asgi_redis’. I was assuming that it would have gotten installed by default while installing Django-Channels, but it doesn’t. ‘asgiref’ gets installed by default and not ‘asgi_redis’. So to solve this issue, one can just run:
> sudo pip install asgi_redis
In my case asgiref version 2.3.2 was not compatible. I downgraded it as follows and then my code worked.
pip install asgiref==1.0.0
With asgiref-2.3.2 and maybe more, you need to install channel_redis.
NOT asgi_redis.
pip install channel_redis
In regard to Utkarsh’s reply itt’s been renamed to:
pip install channels-redis
I also faced same problem while working with django-channels, by following the documentation examples https://channels.readthedocs.io/en/latest/tutorial/index.html
you just need to install channels-redis as
pip install channels-redis
to resolve this issue.
Faced the similar issue. Solved it by installing channels_redis:
pip install channels_redis
Also using channel redis in setting too:
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
'hosts': [('localhost', 6379)],
},
},
'ROUTING': 'ws.routing.application',
}
That did the thing for me.
daphne = "~=3.0.2"
channels = "~=3.0.4"
channels-redis = "~=3.3.1"
async-timeout = "~=3.0.1"
I know this is an old post, however, I got the same problem and I got the solution from this link:
https://github.com/django/channels_redis/issues/113#issuecomment-405071710
based on Andrewgodwin he says:
"asgi-redis is an outdated package (the previous version of channels_redis). You can uninstall it to solve this error."
and that worked for me