0

I’m not able to run python manage.py runserver. I was able to run python manage.py migrate successfully. I even changed ASGI_APPLICATION = "MyProject.asgi.application" to ASGI_APPLICATION = "routing.application" which didn’t work. Here is the error I get

 show_sunset_warning()
System check identified no issues (0 silenced).
March 29, 2025 - 17:52:24
Django version 5.1.7, using settings 'MyProject.settings'
Starting ASGI/Daphne version 4.1.2 development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Exception in thread django-main-thread:
Traceback (most recent call last):
 File "/home/corey-james/Arborhub/MyProject/venv/lib/python3.12/site-packages/daphne/management/commands/runserver.py", line 29, in get_default_application
 module = importlib.import_module(path)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
 return _bootstrap._gcd_import(name[level:], package, level)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
 File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
 File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
 File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
 File "<frozen importlib._bootstrap_external>", line 995, in exec_module
 File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
 File "/home/corey-james/Arborhub/MyProject/MyProject/asgi.py", line 12, in <module>
 import arborchat.routing
 File "/home/corey-james/Arborhub/MyProject/arborchat/routing.py", line 3, in <module>
 from . import consumers
 File "/home/corey-james/Arborhub/MyProject/arborchat/consumers.py", line 2, in <module>
 from channels.consumer import AsyncConsumer
ModuleNotFoundError: No module named 'channels.consumer'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "/usr/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
 self.run()
 File "/usr/lib/python3.12/threading.py", line 1012, in run
 self._target(*self._args, **self._kwargs)
 File "/home/corey-james/Arborhub/MyProject/venv/lib/python3.12/site-packages/django/utils/autoreload.py", line 64, in wrapper
 fn(*args, **kwargs)
 File "/home/corey-james/Arborhub/MyProject/venv/lib/python3.12/site-packages/daphne/management/commands/runserver.py", line 128, in inner_run
 application=self.get_application(options),
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/home/corey-james/Arborhub/MyProject/venv/lib/python3.12/site-packages/daphne/management/commands/runserver.py", line 153, in get_application
 return ASGIStaticFilesHandler(get_default_application())
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/home/corey-james/Arborhub/MyProject/venv/lib/python3.12/site-packages/daphne/management/commands/runserver.py", line 31, in get_default_application
 raise ImproperlyConfigured("Cannot import ASGI_APPLICATION module %r" % path)
django.core.exceptions.ImproperlyConfigured: Cannot import ASGI_APPLICATION module 'MyProject.asgi'

Here is my consumers.py, you can see I clearly remove StopCOnsumers and added the line of code you suggested

import json
from channels.consumer import AsyncConsumer
from channels.generic.websocket import AsyncJsonWebsocketConsumer
import base64
# Channel consumer for both chat room group
class ChatConsumer(AsyncJsonWebsocketConsumer):
 async def connect(self):
 self.room_name = self.scope['url_route']['kwargs']['room_name']
 self.room_group_name = 'chat_%s' % self.room_name
 
 # Join room group
 await self.channel_layer.group_add(self.room_group_name, self.channel_name)
 
 await self.accept()
 
 
 async def disconnect(self, close_code):
 # Leave room group
 await self.channel_layer.group_discard(self.room_group_name, self.channel_layer)
 
 # Receive message from WebSocket
 
 async def receive(self, text_data):
 text_data_json = json.loads(text_data)
 message = text_data_json['message']
 
 # Send message to room group
 await self.channel_layer.group_send(
 self.room_group_name, {'type': 'chat.message', 'message': message}
 )
 
 # Receive message from room group
 
 async def re(self, event):
 message = event['message']
 
 # send message to websocket
 await self.send(text_data=json.dumps({'message': message}))
 
 
# Channel Consumer that consumed events for uploading/receiving image files in the message room
class UploadImageConsumer(AsyncJsonWebsocketConsumer):
 async def connect(self):
 await self.accept()
 
 async def disconnect(self, close_code):
 async def receive(self, bytes_data=None, text_data=None):
 if bytes_data:
 # Handles image file chunks (binary data)
 
 with open('image.jpg', 'rb') as f:
 fcontent = f.read()
 await self.send(base64.b64encode(fcontent).decode('utf-8'))
 elif text_data:
 # Handles metadata (text data)
 
 await self.send(text_data=json.dumps({'message': text_data}))
 
 
 async def send_image(self, event):
 image_data = event['image_text']
 await self.send(bytes_data=image_data)
asked Mar 28, 2025 at 18:20
2
  • 1
    There's an ImportError halfway through the stack trace that you should address. Make sure StopConsumer is available to import from channels.exceptions Commented Mar 28, 2025 at 22:52
  • You are having an improperly configured error in your traceback error stack. Can you help us with your asgi, static/media files? Have you ensured that your project points to the ASGI_APPLICATION instance in your settings? Commented Mar 29, 2025 at 7:21

1 Answer 1

0

I fixed it finally, the problem was that Redis wasn't installed

answered Mar 30, 2025 at 19:30
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.