django - 导入错误 : No module named asgi

标签 django python-3.x channels

为什么会这样:

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 正在为我提供快速提示。

最佳答案

我能够解决这个问题;如果您使用的是 channel 2,则 channel 层与旧版本有很大不同。

我建议您尝试以下方法:

  1. 确认您已在 settings.py 上配置了 channel 层:

    CHANNEL_LAYERS = {
        "default": {
            "BACKEND": "channels_redis.core.RedisChannelLayer",
            "CONFIG": {
                "hosts": [("redis-server-name", 6379)],
            },
        },
    }
    

    如果你使用redis,希望你已经安装了redis。

  2. 将 channel 层添加到asgi.py文件:

    from channels.layers import get_channel_layer
    
    channel_layer = get_channel_layer()
    

你可以看到this解决方案。

关于django - 导入错误 : No module named asgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270729/

相关文章:

go - 在 Go 中定期调用 N 个并发函数的最佳方法是什么?

mysql - Django 条件计数

Django 聚合 - 表达式包含混合类型。您必须设置 output_field

python - 如何使用字符串格式函数打印对象的表示形式?

python - Pandas :用数据框添加星期日期

neural-network - 过滤器如何在 CNN 的第一层中穿过 RGB 图像?

go - 如何获得所有结果而不会出现死锁错误

python - Django 模板的上下文变量范围?

python - Django 未读消息系统

python-3.x - 如何强制 pip 直接从 Internet 而不是本地缓存安装包?