= 절대 경로 / import 하는 파일이나 경로에 상관없이 항상 경로가 동일하기 때문
└── my_app
├── main.py
├── package1
│ ├── module1.py
│ └── module2.py
└── package2
├── __init__.py
├── module3.py
├── module4.py
└── subpackage1
└── module5.py
위와 같은 프로젝트 이고 package1 과 2 있다.
그리고 package2는 subpackage 라는 중첩 package 가 있다.
Absolute path를 이용해 import 하면
from package1 import module1
from package1.module2 import function 1
from package2 import class1
from package2.subpackage1.module5 import function2
경로들의 시작점이 전부 my_app 프로젝트의 가장 최상위 디렉토리에서 시작
단점
경로가 길어진다.(그래서 relative path가 나왔다.)
결론
프로젝트 내에서는 어느 파일, 어느 위치에서 import 하던지 경로가 항상 위와 같이 동일
Relative path 는 absolute path와 다르게 프로젝트의 최상단 디렉토리를 기준으로 경로를 잡는게 아니라 import 하는 위치를 기준으로 경로를 정의
일반적으로 relative path는 local package 안에서 다른 local package를 import 할때 사용
# package2/module3.py
from . import class1
from .subpackage1.module5 import function2
여기서 dot(.)은 import 가 선언되는 파일의 현재위치
또한 dot 2개는 상위 디렉토리로 가는 경로
장점 : 경로길이가 줄어든다
단점 : 1. 햇갈리기쉽다.
2. 파일위치가 변경되면 경로위치도 변경되어야한다.