https://docs.python.org/3/tutorial/modules.html#intra-package-references
- 절대경로 import:
- 패키지 루트부터 풀네임으로 가져옴.
- 예: from sound.effects import echo (형제 서브패키지/모듈도 절대 경로로 명시).
- 패키지 루트부터 풀네임으로 가져옴.
- 상대 import:
- 점(.)으로 현재/부모 패키지 기준을 표시.
- from . import echo → 같은 패키지의 echo.
- from .. import formats → 한 단계 위(sound)의 formats 서브패키지.
- from ..filters import equalizer → 한 단계 위의 filters 서브패키지에서 equalizer.
- 점(.)으로 현재/부모 패키지 기준을 표시.
- 기준:
- 상대 import는 “현재 모듈이 속한 패키지 이름”을 기준으로 한다.
- __name__에 패키지 경로가 있어야 동작.
- 상대 import는 “현재 모듈이 속한 패키지 이름”을 기준으로 한다.
- 주의:
- 진입점(main) 모듈은 패키지 소속이 아니므로 상대 import가 안 된다.
- 애플리케이션 진입점에서는 절대 import를 써야 한다.
패키지 소속이 아니라는 말은 __package__ 값이 없는 것을 말하고,
해당 값은 from / import 구문으로 실제 import 되었을 때 자동으로 채워지는 값이다.
패키지 루트로 부터 풀네임 값으로 기록되어 있음. (형제 서브패키지/모듈로 기록)