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

Django报snp.routing模块ASGI_APPLICATION导入错误修复方法

Django集成Channels报ASGI模块导入错误排查修复

问题相关配置

settings.py中ASGI配置项:

ASGI_APPLICATION = 'snp.routing.application'

snp目录下routing.py文件代码:

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter

import chat.routing

application = ProtocolTypeRouter ({
    'websocket': AuthMiddlewareStack(
        URLRouter (
            chat.routing.websocket_urlpatterns
        )
    )
})

启动时抛出异常:

raise ImproperlyConfigured("Cannot import ASGI_APPLICATION module %r" % path)
django.core.exceptions.ImproperlyConfigured: Cannot import ASGI_APPLICATION module 'snp.routing'

排查修复步骤

按以下优先级逐层排查即可解决问题:

  • 检查Python包结构合法性
    首先确认snp目录、chat目录下都存在空的__init__.py文件,缺少该文件Python会将目录识别为普通文件夹,无法作为模块导入。同时确认启动服务的终端工作目录是manage.py所在的项目根目录,工作目录不对会导致Python解释器搜索不到对应模块。
  • 核对依赖版本兼容性
    执行pip list | grep -E "Django|channels"查看已安装版本:Django 3.0及以上版本必须搭配Channels 3.0及以上版本,Channels 2.x版本和高版本Django的ASGI接口不兼容,会触发导入错误,版本不匹配时卸载重装对应兼容版本即可。
  • 定位导入链路的原始错误
    Django抛出的ImproperlyConfigured是包装后的通用提示,真实错误出现在模块导入的链路中:在项目根目录打开Python交互环境,直接执行import snp.routing,会打印出完整的原始错误栈,常见的错误点包括:
    • chat app未添加到settings.py的INSTALLED_APPS列表中
    • chat目录下的routing.py文件不存在,或文件内未定义websocket_urlpatterns变量
    • 任意层级的routing.py文件存在语法错误、缩进错误、引用了不存在的视图/消费者类
  • 检查配置拼写准确性
    核对ASGI_APPLICATION配置的路径拼写:确认模块名snp、文件名routing、application变量名没有拼写错误,注意大小写完全匹配,不要出现把routing写成routings、route这类笔误。
  • 核对服务启动命令
    使用daphne/uvicorn启动ASGI服务时,启动参数要指向正确的application对象,比如标准启动命令为daphne snp.asgi:application,不要写错路径参数。

内容的提问来源于stack exchange,提问作者samson negash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:21:27