'<project_name>.wsgi.application' could not be loaded; Error importing module.

2460 단어 djangodjango

heroku로 배포된 django 프로젝트를 clone 후 서버를 돌려보려 하는데 아래와 같은 에러가 떴다. wsgi 를 제대로 임포트하지 못하고 있었다.

raise ImproperlyConfigured(django.core.exceptions.ImproperlyConfigured:
WSGI application '<project_name>.wsgi.application' could not be loaded; Error importing module.

해결법은 크게 3가지가 있는 듯 하다.

1. settigns.pywsgi.py 에서 환경변수가 잘 설정 되어있는지 확인

# settings.py
WSGI_APPLICATION = '<project_name>.wsgi.application'
# wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<project_name>.settings')

확인해보니 구조와 PATH의 문제는 아닌 것 같았다.


2. whitenoise 설치하기

whitenoise는 static 파일들을 collectstatics 명령수행시 지정경로에 파일들을 모아주는 라이브러리 이다. settings.py 의 미들웨어를 확인해보니 whitenoise를 사용하고 있었다.

# settings.py
MIDDLEWARE = [
	'whitenoise.middleware.WhiteNoiseMiddleware',
    ...
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

설치해 주었다.

$ pip install whitenoise

참고로 whitenoise version 4.0 이상을 사용한다면
wsgi.py 에서 whitenoise에 대한 참조를 제거해줘야 한다.
노란줄이 뜨는 whitenoise 참조를 제거하니 무사히 서버가 돌아갔다.


3. debug-toolbar 와 충동하여 실행이 안되는 경우.

미들웨어 에서 debug-toolbar를 지워주자.

좋은 웹페이지 즐겨찾기