没有名为'asgiref.base_layer'的模块

2024-05-08 20:17:58 发布

您现在位置:Python中文网/ 问答频道 /正文

在启动服务器(python manage.py run server)时,出现以下错误

文件“/Users/thomasallen/PycharmProjects/Channels_and_Signals/venv/lib/python3.9/site packages/asgi_redis/core.py”,第19行 从asgiref.base\u层导入BaseChannelLayer ModuleNotFoundError:没有名为'asgiref.base_layer'的模块

在…/core.py中有问题的第19行是

from asgiref.base_layer import BaseChannelLayer

我安装的软件包包括: Django 3.2.4 频道3.0.3 频道redid 3.2.0 渴望3.3.4 asgi redis 1.1.0

我不确定错配在哪里


1条回答
网友
1楼 · 发布于 2024-05-08 20:17:58

这是因为asgi_redis1.1.0依赖于一个旧版本的asgiref(在setup.py中没有上界作为asgiref>=1.0.0列出),该版本以前有此代码。但是您安装了一个更新的版本,因为Django依赖于asgiref >= 3.3.2

您不应该同时安装asgi_redischannels_redis,它们是同一软件包的不同版本。见channels_redis git repo中的注释:

Note: Prior versions of this package were called asgi_redis and are still available under PyPI as that name if you need them for Channels 1.x projects. This package is for Channels 2 projects only.

您的解决方案是不使用asgi_redis,而是使用channels_redis

相关问题 更多 >