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

[파이썬][Error] 057. ImportError - cannot import name 'child' from 'parent.module'

by about_IT 2025. 5. 29.
728x90

ImportError: cannot import name 'child' from 'parent.module' 오류는 모듈 내에 존재하지 않는 이름(클래스, 함수, 변수 등)을 import하려고 할 때 발생합니다. 즉, 지정한 모듈은 존재하지만 그 안에 'child'라는 이름이 정의되어 있지 않을 때 나타납니다.

주로 오탈자, 구조 변경, 순환 참조, 또는 모듈 이름과 변수 이름 충돌로 인해 발생하며, 프로젝트 구조가 복잡할수록 자주 마주치는 오류입니다.

● 오류 발생 예시

from parent.module import child

이때 parent.module은 존재하지만 그 안에 child라는 이름이 정의되어 있지 않으면 오류가 발생합니다.

ImportError: cannot import name 'child' from 'parent.module'

● 해결 방법

  • 모듈 내부에 해당 이름이 실제로 정의되어 있는지 확인
  • 오탈자 여부 점검 (대소문자 구분 포함)
  • 해당 이름이 __all__에 포함되어 있는지 확인 (필요한 경우)
  • 순환 import 문제 시 구조를 재조정하거나 지연 import 사용

● 예시 코드

# parent/module.py
class Parent:
    pass

# 잘못된 import
from parent.module import Child  # → ImportError 발생

● 자주 하는 실수

  • 모듈 내 구조 변경 후 import 문 수정 누락
  • 하위 모듈을 __init__.py에 노출하지 않음
  • 상호 참조(circular import)로 인한 지연 정의 발생

● 결론

ImportError - cannot import name 'X' from 'Y' 오류는 모듈은 존재하나, 해당 이름이 정의되어 있지 않을 때 발생합니다. 모듈 내부 정의와 구조를 정확히 파악하고, 순환 참조를 피하는 구조 설계가 중요합니다.

728x90