Django在试图用devserver提供静态文件时出现通道错误



我将我的项目移到了另一个环境中,在安装了依赖项并尝试运行manage.py runserver-devserver之后,当请求静态文件时,我收到了以下错误。坦率地说,我完全被这个错误弄糊涂了,有人知道这是怎么回事吗?

HTTP GET /static/admin/css/responsive.css 500 [0.21, 127.0.0.1:59982]
Exception inside application: async_to_sync can only be applied to async functions.
Traceback (most recent call last):
File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/staticfiles.py", line 41, in __call__
dict(scope, static_base_url=self.base_url), receive, send
File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/staticfiles.py", line 56, in __call__
return await super().__call__(scope, receive, send)
File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/channels/http.py", line 198, in __call__
await self.handle(scope, async_to_sync(send), body_stream)
File "/home/maxehleny/.local/share/virtualenvs/mysite-EdbyOLs2/lib/python3.6/site-packages/asgiref/sync.py", line 105, in __init__
raise TypeError("async_to_sync can only be applied to async functions.")
TypeError: async_to_sync can only be applied to async functions.

我几乎不知道问题可能在哪里,因为我不知道这与我自己的代码有什么关系。如果我评论掉频道,其他一切都很好。

第2版根据ladruas的答案,降级为asgiref==3.2.10对我也有效。

两者之间似乎不兼容通道==3.0.3asgiref==3.3.10

我将asgiref==3.2.10添加到我的requirements.txt文件中,它似乎已经解决了问题。

最新更新