Django——ModuleNotFoundError: No module named 'asgiref.sync'

Posted huang-yc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django——ModuleNotFoundError: No module named 'asgiref.sync'相关的知识,希望对你有一定的参考价值。

Django+channels运行时报错

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f267151a840>
Traceback (most recent call last):
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    autoreload.raise_last_exception()
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/django/apps/registry.py", line 116, in populate
    app_config.ready()
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/channels/apps.py", line 20, in ready
    monkeypatch_django()
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/channels/hacks.py", line 10, in monkeypatch_django
    from .management.commands.runserver import Command as RunserverCommand
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/channels/management/commands/runserver.py", line 11, in <module>
    from channels.routing import get_default_application
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/channels/routing.py", line 9, in <module>
    from channels.http import AsgiHandler
  File "/root/ENVS/dj11.7/lib/python3.7/site-packages/channels/http.py", line 16, in <module>
    from asgiref.sync import async_to_sync, sync_to_async
ModuleNotFoundError: No module named asgiref.sync

解决:

pip install asgiref==2.1.1

应该是默认的asgiref版本不对,需要手动指定版本

以上是关于Django——ModuleNotFoundError: No module named 'asgiref.sync'的主要内容,如果未能解决你的问题,请参考以下文章

相对导入 - ModuleNotFoundError:没有名为 x 的模块

Django - 学习目录

Django初识

Django之路

Django系列

django 错误