为什么:
from channels.asgi import get_channel_layer
结果:
from channels.asgi import get_channel_layer
ImportError: No module named asgi
我正在使用 Django (1.9) 和 python(3.4)。而且,在 pycharm 中编辑时,我看到 IDE 为我提供了快速提示。
我能够解决这个问题;如果您使用通道 2,通道层与旧版本有很大不同。
我建议您尝试以下方法:
确认您已在
settings.py
上配置通道层:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("redis-server-name", 6379)],
},
},
}
如果使用redis,希望你已经安装了redis。
将通道层添加到
asgi.py
文件:
from channels.layers import get_channel_layer
channel_layer = get_channel_layer()
您可以看到这个解决方案。
确保您已安装它并仔细检查您是否已激活 virtualenv。
pip install -U asgi_redis
使用
pip show channels
查看您的软件包的版本。
channels.asgi 直到 0.9 版本才出现:
https://github.com/andrewgodwin/channels/tree/0.8/channels https://github.com/andrewgodwin/channels/tree/0.9/channels
我在调试服务器并从命令行运行 daphne 命令时遇到了这个问题。我正在运行这样的命令:
/home/myuser/.virtualenvs/myapp/bin/python /home/myuser/.virtualenvs/myapp/bin/daphne -b 0.0.0.0 -p 8080 core.asgi:channel_layer
但仍然失败。结果我必须
cd
进入与 manage.py
相同的目录才能运行它。如果您使用类似 systemctl
的内容,则只需将工作目录设置为相同位置即可。
对 StackOverflow 将我的数据出售给 AI 不感兴趣。