장고 ImportError : settings.py 설정 오류

들어가며

에러가 발생하면서 여러 문장을 출력하지만 가장 마지막 핵심 문장은 다음과 같았습니다. ImportError: Module ‘comments.apps’ does not contain a ‘CommentConfig’ class. Choices are: ‘CommentsConfig’. 장고 ImportError 는 언제 발생하는 걸까요

장고 ImportError 오류 해결

새로운 app을 추가하기 위해서 python manage.py startapp posts 명령어를 입력하고 일련의 작업을 맞춘 뒤 나온 에러였습니다.

해당 error는 settings.py에서 INSTALLED_APPS 설정을 잘못해서 나온 것 입니다.

저는 comments app을 만들었기에 INSTALLED_APPS 리스트에 ‘comments.apps.CommentsConfig‘,을 입력해줘야 했는데 중간에 s를 빼먹고 comments.apps.CommentConfig 을 입력해서 나온 오류였습니다…

사실 애초에 app을 추가할 때 'posts.apps.PostsConfig' 같이 작성하지 않고 post와 같이 app 이름만 작성해도 INSTALLED_APPS에서 인식하기 때문에 아래와 같이 작성하지 않고 app 이름만 추가하는 게 더 좋은 것 같습니다.

# Application definition
CUSTOM_APPS = [
    'posts.apps.PostsConfig',
    'common.apps.CommonConfig',
    'comments.apps.CommentsConfig',
]

# 기존에 있던 INSTALLED_APPS를 SYSTEM_APPS로 변경
# Django는 INSTALLED_APPS만 인지하기 때문에 만드는 새로 만들어서 붙임
SYSTEM_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

INSTALLED_APPS = SYSTEM_APPS + CUSTOM_APPS

마치며

새로운 app을 추가하는 과정은 수동으로 진행되다 보니 오류가 많이 생기는 것 같습니다.

다음부터는 ImportError가 나오더라도 당황하지 않을 것 같습니다.

물론 애초에 오타부터 근절해야겠지만요…ㅎ

참고하면 좋은 글

장고 공부 시리즈1

장고 공부 시리즈2

Leave a Comment

목차