web-dev-qa-db-ja.com

Djangoチャネルエラー-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",
},
}

このエラーの解決に支援が必要です。

10
Utkarsh Sinha

'asgi_redis'をインストールする必要があります。 Django-Channelsのインストール中にデフォルトでインストールされると思っていましたが、そうではありません。 'asgiref'はデフォルトでインストールされ、 'asgi_redis'ではありません。したがって、この問題を解決するには、次のコマンドを実行するだけです。

> Sudo pip install asgi_redis
9
Utkarsh Sinha

ドキュメントの例に従うことで、Django-channelsでの作業中にも同じ問題に直面しました https://channels.readthedocs.io/en/latest/tutorial/index.html チャネルをインストールするだけです- redis as

pipインストールチャネル-redis

この問題を解決します。

7
lokesh

Utkarshの返信に関しては、名前が次のように変更されました。

pip install channels_redis
7
drulang

asgiref-2.3.2以上の場合は、channel_redisをインストールする必要があります。

NOT asgi_redis

pip install channel_redis
4
jlSta

私の場合、asgirefバージョン2.3.2は互換性がありませんでした。次のようにダウングレードしたところ、コードが機能しました。

pip install asgiref==1.0.0
0
Jayati Deshmukh