Absolute path와 relative path의 차이점

jeong_hyeon·2022년 3월 3일
0

TIL

목록 보기
7/22

Absolute path

= 절대 경로 / 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

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. 파일위치가 변경되면 경로위치도 변경되어야한다.

0개의 댓글