본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 054. ModuleNotFoundError - No module named 'package.submodule'

by about_IT 2025. 5. 28.
728x90

ModuleNotFoundError: No module named 'package.submodule' 오류는 하위 모듈 또는 서브패키지를 임포트하려 할 때 해당 모듈이 존재하지 않거나 경로가 잘못되었을 경우 발생합니다. 이 오류는 특히 패키지 내부의 하위 경로를 지정하는 경우 자주 발생하며, 폴더 구조가 올바르게 패키지로 설정되지 않았거나, 해당 모듈이 누락된 경우에 나타납니다.

또한 상대 경로 import 또는 가상환경 내 설치 문제, __init__.py 파일 누락, 또는 배포된 버전에서 구조가 변경되었을 경우도 원인이 됩니다.

● 오류 발생 예시

from package.submodule import function

이 코드에서 submodule이 실제로 존재하지 않으면 오류가 발생합니다.

ModuleNotFoundError: No module named 'package.submodule'

● 해결 방법

  • 폴더 구조와 __init__.py 존재 여부 확인
  • pip show 패키지명으로 설치된 경로 확인
  • sys.path에 현재 디렉토리 포함 여부 확인
  • 모듈 이름 오타나 하위 구조 변경 여부 확인

● 예시 코드 수정

# 예: 기존에 있던 구조가 변경됨
# 잘못된 코드
from sklearn.model_selection.train_test_split import train_test_split

# 올바른 코드
from sklearn.model_selection import train_test_split

● 자주 하는 실수

  • 상위 패키지는 설치되어 있으나 하위 모듈이 누락
  • 상대경로 import를 절대경로 import로 잘못 변경
  • 패키지 구조 변경을 최신 문서로 확인하지 않음

● 결론

ModuleNotFoundError - No module named 'package.submodule' 오류는 서브모듈 또는 하위 경로가 존재하지 않을 때 발생합니다. 정확한 구조를 파악하고 모듈 설치 여부 및 경로 구성을 검토함으로써 오류를 예방할 수 있습니다.

728x90