본문 바로가기

장난감/에타

파이참 장고 migration no module named ~ 오류

원인


migration no module named 어쩌고 오류는 파이참이 해당 모듈을 찾을 수 없기 때문에 일어난다.

혹시 모듈이나 디렉토리 이름을 바꾸지 않았는가?

 

내 경우는 처음 장고 디렉토리를 만들 때, 디렉토리 이름을 잘못 바꿔서 이 오류가 일어났다.

 

mysite  # 일반폴더. 이 폴더의 이름을 바꿨다.

   | ― mysite    # 프로젝트 디렉토리

      |― settings.py

      |― urls.py

      |― ...

  |― polls     # 애플리케이션 디렉토리

      |― apps.py

      |― admin.py

      |― ...

  |― manage.py

 

 

mysite안에 mysite라는 디렉토리가 또 있는 구조다.

파란 글씨로 된 mysite를 바꾸면서, 모든 mysite가 들어가는 레퍼런스도 바꿔주었더니 manage.py에서 모듈을 찾을 수 없다며 에러가 났다. 프로젝트 디렉토리 mysite를 사용하는 곳도 바꿔버린것이었다.

 

해결법


mysite최상위 폴더의 이름을 바꿀 경우 : 이름만 바꾸고 refactoring하지 않는다. (모든 레퍼런스는 놔둔다)

mysite 프로젝트 디렉토리 이름을 바꿀 경우: 모든 mysite라는 usage도 바꾼다. (refactoring한다.)

manage.py가 참고하는건 프로젝트 디렉토리 이름이기 때문이다.