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
ドキュメントの例に従うことで、Django-channelsでの作業中にも同じ問題に直面しました https://channels.readthedocs.io/en/latest/tutorial/index.html チャネルをインストールするだけです- redis as
pipインストールチャネル-redis
この問題を解決します。
Utkarshの返信に関しては、名前が次のように変更されました。
pip install channels_redis
asgiref-2.3.2以上の場合は、channel_redisをインストールする必要があります。
NOT asgi_redis。
pip install channel_redis
私の場合、asgirefバージョン2.3.2は互換性がありませんでした。次のようにダウングレードしたところ、コードが機能しました。
pip install asgiref==1.0.0