ModuleNotFoundError: No module named 'helloeb2.settings'





AWS 나 다른 환경으로 배포하기 위해 settings.py 를 분기시켜야 한다. 


그런데 말입니다. 



1. 기존 settins.py 외 settings 폴더를 생성한다.

2. settings 폴더내 common, dev, prod 파일을 생성한다. 

3. 이후 common 파일에 기존 settings 파일의 내용을 복사하고 settings 파일 삭제

4.  최상단 manage.py 의 settings 경로를 settings/dev 로 수정한다. 



그리고 


ModuleNotFoundError: No module named 'helloeb2.settings'


이 에러가 뜬다. 

분명 다른 사람들은 이렇게 하면 잘만 되던데 왜 나만... ㅅㅂ... 


분명 manage.py에서 수정을 해줬는데도  기존 settings.py을 찾는 이유는 뭘까 ? 

음 ... 몇군데 찾아보니 이유에 대한 원인을 몇가지 찾을 수 있었다. 


1., 분기전 migrations을 하면서 데이터 저장 부분이 settings를 참조하고 있거나

=> 다른 프로젝트를 만들어서 똑같이 해봤지만 에러. 마이그레이션 문제는 아닌듯 하다.


2. 상위 루트 폴더인 helloeb2  부분을 헷갈려서 에러가 나거나

=> 상위 폴더 이름을 변경해봤는데 그래도 오류가 난다. 


3. 장고 버전이 안맞아서 그런다 ?

=> 장고 2.0으로 업데이트 했으나 같은 현상이 일어났다. 





해결책. 



근데 해결은 비교적 간단하게.. . 이렇게 쉽게 풀리다니


os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'helloeb2.settings.dev')

에서


os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'settings.dev')


이렇게 하니 작동을 한다. 


어떤 이유인지는 모르겠으나 상위 디렉토리를 제거하면 된다. 

하... 2시간 날렸네.. 






나의 삽질로 남들의 시간이 단축 될 수 있다면 ... 

글 보고 해결되셨다면 댓글 하나씩만 남겨주세요.