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