Django 频道没有名为“asgiref.sync”的模块错误

Moh*_*ara 3 python sockets django channel

我正在尝试为我的项目使用渠道。我按照本教程Raspberry PI 和 Django Channels来开发我的项目。但是运行服务器python3 manage.py runsever给了我下面的错误。

root@raspberrypi:/home/pi/sensor# python3 manage.py runserver 0:8000
:0: UserWarning: You do not have a working installation of the service_identity module: 'cannot import name 'opentype''.  Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied.  Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification.  Many valid certificate/hostname mappings may be rejected.
:0: UserWarning: You do not have a working installation of the service_identity module: 'cannot import name 'opentype''.  Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied.  Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification.  Many valid certificate/hostname mappings may be rejected.
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 77, in raise_last_exception
    raise _exception[0](_exception[1]).with_traceback(_exception[2])
  File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/usr/local/lib/python3.5/dist-packages/channels/apps.py", line 20, in ready
    monkeypatch_django()
  File "/usr/local/lib/python3.5/dist-packages/channels/hacks.py", line 10, in monkeypatch_django
    from .management.commands.runserver import Command as RunserverCommand
  File "/usr/local/lib/python3.5/dist-packages/channels/management/commands/runserver.py", line 11, in <module>
    from channels.routing import get_default_application
  File "/usr/local/lib/python3.5/dist-packages/channels/routing.py", line 9, in <module>
    from channels.http import AsgiHandler
  File "/usr/local/lib/python3.5/dist-packages/channels/http.py", line 17, in <module>
    from asgiref.sync import async_to_sync, sync_to_async
ImportError: No module named 'asgiref.sync'  
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?
蟒蛇:3.5.3
Django:2.21
通道:2.2.0
asgiref:3.1.2

Ank*_*gon 8

您的频道版本是最新的,所以安装最新版本的 asgiref,尝试:

pip install asgiref==3.1.2
Run Code Online (Sandbox Code Playgroud)