Я пытаюсь использовать каналы django, но он продолжает выдавать ошибку

я пытаюсь внедрить приложение django channels в мой проект django. но всякий раз, когда я помещаю приложение channels в установленное приложение django settings.py, оно выдает ошибку, как показано ниже

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    django.setup()
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\django\apps\registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\django\apps\config.py", line 124, in create
    mod = import_module(mod_path)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\channels\apps.py", line 4, in <module>
    import daphne.server
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\daphne\server.py", line 5, in <module>
    from twisted.internet import asyncioreactor  # isort:skip
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\internet\asyncioreactor.py", line 16, in <module>
    from twisted.logger import Logger
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\logger\__init__.py", line 105, in <module>
    from ._logger import Logger, _loggerFor
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\logger\_logger.py", line 269, in <module>
    _log = Logger()
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\logger\_logger.py", line 65, in __init__
    from ._global import globalLogPublisher
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\logger\_global.py", line 17, in <module>
    from ._buffer import LimitedHistoryLogObserver
  File "E:\sunil_sachin\SSMOS_env\lib\site-packages\twisted\logger\_buffer.py", line 10, in <module>
    from typing import Deque, Optional
ImportError: cannot import name 'Deque'

Версии: Django 3.2.8 channels 3.0.0 channels_redis 3.2

И я знаю, что модуль типизации не содержит Deque в соответствии с

import typing
dir(typing)

Выход

['AbstractSet', 'Any', 'AnyStr', 'AsyncIterable', 'AsyncIterator', 'Awaitable', 'BinaryIO', 'ByteString', 'CT_co', 'Callable', 'CallableMeta', 'ClassVar', 'Collection', 'Container', 'ContextManager', 'Coroutine', 'DefaultDict', 'Dict', 'FrozenSet', 'Generator', 'Generic', 'GenericMeta', 'Hashable', 'IO', 'ItemsView', 'Iterable', 'Iterator', 'KT', 'KeysView', 'List', 'Mapping', 'MappingView', 'Match', 'MutableMapping', 'MutableSequence', 'MutableSet', 'NamedTuple', 'NamedTupleMeta', 'NewType', 'Optional', 'Pattern', 'Reversible', 'Sequence', 'Set', 'Sized', 'SupportsAbs', 'SupportsBytes', 'SupportsComplex', 'SupportsFloat', 'SupportsInt', 'SupportsRound', 'T', 'TYPE_CHECKING', 'T_co', 'T_contra', 'Text', 'TextIO', 'Tuple', 'TupleMeta', 'Type', 'TypeVar', 'TypingMeta', 'Union', 'VT', 'VT_co', 'V_co', 'ValuesView', '_Any', '_ClassVar', '_FinalTypingBase', '_ForwardRef', '_G_base', '_Optional', '_PY36', '_Protocol', '_ProtocolMeta', '_TypeAlias', '_TypingBase', '_TypingEllipsis', '_TypingEmpty', '_Union', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_check_generic', '_cleanups', '_eval_type', '_generic_new', '_geqv', '_get_defaults', '_get_type_vars', '_gorg', '_make_nmtuple', '_make_subclasshook', '_next_in_mro', '_no_slots_copy', '_overload_dummy', '_qualname', '_remove_dups_flatten', '_replace_arg', '_subs_tree', '_tp_cache', '_trim_name', '_type_check', '_type_repr', '_type_vars', '_valid_for_check', 'abc', 'abstractmethod', 'abstractproperty', 'cast', 'collections', 'collections_abc', 'contextlib', 'functools', 'get_type_hints', 'io', 'no_type_check', 'no_type_check_decorator', 'overload', 're', 'stdlib_re', 'sys', 'types']

Любая помощь и руководство будут замечательными Заранее спасибо

Класс Deque был добавлен в модуль типизации в Python 3.6.1. Поэтому проект django-channels должен иметь жесткую зависимость от Python 3.6.1+ и не будет работать с Python 3.6.0.

Обратите внимание, что в документации по модулю типизации говорится, что он был добавлен как в 3.5.4, так и в 3.6.1, что может немного запутать. Это означает, что он был добавлен в патч-релизах поверх 3.5 и 3.6. Его не было ни в 3.5.3, ни в 3.6.0.

Вернуться на верх