ASGI_APPLICATION module ‘myproject.asgi‘【记录为期四天的Debug】

一、起因

        想用websocket实现视频流传输  -->  开始配置channels环境   -->  报错

         (其实报了很多错)大多在说Cannot import ** model,还以为是路径没写对,一直改呀改...

        然后发现主要原因在下方

Cannot import ASGI_APPLICATION module 'myproject.asgi'

二、解决方法

        试了很多种方法,确定的是最后一步是必要条件,那么开始上菜!

1.找到你当前虚拟环境所在位置,例如

2.修改虚拟环境中的asgi.py(某博主方法,结论是没用

3.修改settings.py ,daphne必须在第一行,(官网说的,不然有冲突)

官网Installation — Channels 4.0.0 documentation

python -m pip install -U channels["daphne"]

添加ASGI_APPLICATION配置

中途经历了多种版本降级升级,都没用,直到胃不舒服,一边打嗝,一边继续改,光明出现

4.升级django和channels版本都为最新版 

 pip install --upgrade django channels

 然后run项目,终于正常启动asgi,如下图

为什么说第三步没用呢,你可以打开那个虚拟环境asgi文件,又变回修改前的样子,因为你django升级了,文件都是新版本的内容

PS:所谓下载命令 pip install -U channels==3.0.2   假  

        最后还得是新版本配新版本

5.续(第二天早上起来,asgi.py加上channels又不行了)

settings.py   删除daphne

asgi.py

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

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'day16.settings')
# django_asgi_app = get_asgi_application()

# application = ProtocolTypeRouter({
#     "http": django_asgi_app,
#     # Just HTTP for now. (We can add other protocols later.)
# })

from . import routings

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

# application = get_asgi_application()
application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': URLRouter(routings.websocket_urlpatterns)
})

routings.py

from django.urls import re_path

from day16.app01 import consumers

websocket_urlpatterns = [
    re_path(r'ws/(?P<group>\w+)/$', consumers.ChatConsumer.as_asgi())
]

project目录

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值