CommandError: You have not set ASGI_APPLICATION, which is needed to run the server.
오류는 Django 프로젝트에서 ASGI 애플리케이션의 경로가 설정 파일(settings.py
)에 명시되지 않았을 때 발생합니다. ASGI(Application Server Gateway Interface)는 Django에서 비동기 프로그래밍을 지원하기 위한 인터페이스이며, 특히 Django Channels와 같은 비동기 기능을 사용할 때 필요합니다.
해결 방법
ASGI_APPLICATION
설정하기: 프로젝트의settings.py
파일에서ASGI_APPLICATION
설정을 추가합니다. 이 설정은 ASGI 애플리케이션의 경로를 지정해야 합니다. 일반적으로 이 경로는[프로젝트명].asgi.application
의 형태를 취합니다. 예를 들어, 프로젝트 이름이myproject
라면,settings.py
파일에 다음과 같이 추가합니다:
ASGI_APPLICATION = 'myproject.asgi.application'
- ASGI 애플리케이션 파일 확인하기: 프로젝트의 루트 디렉토리에
asgi.py
파일이 있는지 확인합니다. Django 프로젝트를 생성할 때startproject
명령을 사용하면, 이 파일은 자동으로 생성됩니다. 파일 내용은 대략 다음과 같아야 합니다:
"""
ASGI config for myproject project.
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_asgi_application()
여기서 myproject
는 실제 프로젝트의 이름으로 대체해야 합니다.
- 서버 재시작: 설정을 변경한 후, ASGI 서버를 다시 시작합니다. Daphne를 사용하는 경우, 다음과 같은 명령어로 서버를 시작할 수 있습니다:
daphne -p 8001 myproject.asgi:application
여기서 8001
은 사용할 포트 번호이며, myproject
는 실제 프로젝트 이름으로 대체해야 합니다.
위의 단계들을 통해 ASGI_APPLICATION
설정을 올바르게 추가하고, ASGI 애플리케이션 파일(asgi.py
)이 제대로 구성되어 있는지 확인하면, 위의 오류를 해결할 수 있습니다.
답글 남기기 응답 취소