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

使用Django Channels搭建聊天应用启动ASGI服务器报错求助

解决Django Channels启动ASGI服务器的配置错误

问题原因

你在asgi.py里手动调用settings.configure(project.settings)的方式不正确,Django需要通过环境变量指定配置文件,或者遵循标准ASGI初始化流程加载设置,否则会触发配置未就绪的报错。

修正方案

1. 替换正确的asgi.py代码

将你的asgi.py替换为以下标准初始化结构:

import os
import django
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from chat.routing import websocket_urlpatterns

# 设置Django配置文件的环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
# 初始化Django环境
django.setup()

application = ProtocolTypeRouter({
    "http": get_asgi_application(),
    "websocket": URLRouter(
        websocket_urlpatterns
    ),
})

2. 两种启动方式任选其一

方式一:直接启动(需确保环境变量已配置)

如果你的系统已默认设置DJANGO_SETTINGS_MODULE为project.settings,可直接运行原命令:

daphne -b 0.0.0.0 -p 8001 project.asgi:application

方式二:启动时显式指定配置文件

若不确定环境变量状态,启动时直接指定配置文件更稳妥:

DJANGO_SETTINGS_MODULE=project.settings daphne -b 0.0.0.0 -p 8001 project.asgi:application

3. 额外检查项

  • 确认项目结构中,project是根目录,settings.py确实位于project文件夹下
  • 确保channels和daphne已正确安装,且INSTALLED_APPS中daphne排在最前面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:42:15