#python #django #django-channels
Вопрос:
При запуске моего сервера (python manage.py запустите сервер) Я получаю следующую ошибку.
Файл «/Users/thomasallen/PycharmProjects/Channels_and_Signals/venv/lib/python3.9/site-packages/asgi_redis/core.py», строка 19, в из asgiref.base_layer импортируйте модуль базового уровня. Не найдено ни одного модуля с именем «asgiref.base_layer»
Оскорбительная строка 19 в …/core.py это
from asgiref.base_layer import BaseChannelLayer
Пакеты, которые я установил, являются:
Django 3.2.4
каналы 3.0.3
каналы-переделано 3.2.0
желаемое 3.3.4
asgi-переделано 1.1.0
Я не уверен, в чем заключается несоответствие.
Ответ №1:
Это потому asgi_redis
, что 1.1.0 зависит от старой версии asgiref
(перечисленной без верхней границы, как asgiref>=1.0.0
в их setup.py), в котором раньше был этот код. Но у вас установлена более поздняя версия, потому что от нее зависит Django asgiref >= 3.3.2
.
У вас не должно быть ни asgi_redis
channels_redis
того, ни другого, ни установленного, это разные версии одного и того же пакета. Смотрите примечание в репо git channels_redis:
Примечание.Предыдущие версии этого пакета назывались
asgi_redis
и по-прежнему доступны под этим именем PyPI, если они нужны для проектов Channels 1.x. Этот пакет предназначен только для проектов Channels 2.
Ваше решение состоит в том, чтобы не использовать asgi_redis
и использовать channels_redis
вместо этого.