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

Django项目报错:无法导入ASGI_APPLICATION模块'mysite.routing'求助

解决Django Channels报错:Cannot import ASGI_APPLICATION模块'mysite.routing'

核心问题定位

报错的直接原因是你的项目中缺少mysite/routing.py文件,但settings.py里的ASGI_APPLICATION配置指向了这个不存在的模块,Channels启动时无法找到对应的ASGI应用入口。

分步解决方案

1. 创建缺失的routing.py文件

在mysite目录下新建routing.py,基础配置如下:

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter

# 初始化Django配置
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = ProtocolTypeRouter({
    "http": get_asgi_application(),
    # 如果需要WebSocket支持,后续可以在这里添加URLRouter配置
    # 示例:
    # "websocket": URLRouter([
    #     path("ws/chat/", YourChatConsumer.as_asgi()),
    # ]),
})

2. 修正asgi.py的配置逻辑

当前asgi.py没有对接Channels的路由体系,修改为与routing.py联动的方式:

import os
from mysite.routing import application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

或者保持asgi.py简洁,直接复用routing.py中定义的application,确保与settings.py的ASGI_APPLICATION配置完全匹配。

3. 验证模块可导入性

  • 确认mysite目录下存在__init__.py文件(空文件即可),保证它是Python可识别的模块。
  • 检查Linux/macOS系统下的文件名大小写,确保routing.py的拼写和配置中的mysite.routing完全一致(系统区分大小写)。

4. 确认依赖完整性

确保Channels相关依赖已正确安装:

pip install channels

你的Django 2.1.8和Channels 2.1.7版本兼容,无需调整版本。

额外排查点

如果以上步骤仍未解决问题,可以在asgi.py开头添加路径校验,确保项目根目录在Python的搜索路径中:

import sys
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
sys.path.append(str(BASE_DIR))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:05:30