You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django运行报错No module named 'django.core.asgi'问题排查求助

问题根因

  • 你当前安装的Django 2.2.19版本不支持ASGI能力,django.core.asgi模块是Django 3.0及以上版本才正式内置的功能,所以会直接抛出导入错误
  • 你的requirements.txt中Django没有锁定版本,近期重新安装依赖时大概率自动拉取过高版本Django,后续又因为其他操作回退到了2.2.19,版本漂移导致适配高版本Django的ASGI配置无法兼容旧版本
  • 你这个项目最初是用Django 3.1.4生成的,默认自带asgi.py配置,settings.py中也配置了ASGI_APPLICATION参数,这些配置在Django 2.2版本下都无法正常运行

解决方案

方案1:保留Channels WebSocket功能(推荐)

直接升级Django到3.0以上的长期支持版本,同时锁死所有依赖版本避免后续再出现版本漂移问题

  1. 修改requirements.txt,锁定所有依赖的兼容版本:
Django==3.2.20
google-auth==2.22.0
gunicorn==20.1.0
Channels==3.0.5
Daphne==3.0.2
channels_redis==3.4.1
pyzmq==25.1.1
  1. 执行命令重新安装依赖:
    pip install -r requirements.txt
  2. 启动项目验证即可,原有的ASGI、Channels配置不需要做任何改动

方案2:不需要WebSocket功能

直接移除所有ASGI相关配置即可恢复启动

  1. 删除项目根目录下的asgi.py文件
  2. 删掉settings.py中以下两行相关配置:
ASGI_APPLICATION = 'smartcube_interface.asgi.application'
CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [('127.0.0.1', 6379)],
        },
    },
}
  1. 从INSTALLED_APPS列表里删掉channels,从requirements.txt里删掉Channels、Daphne、channels_redis三个依赖
  2. 重启项目即可正常运行

内容的提问来源于stack exchange,提问作者Alexander Wagner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:45:01