[Python] Absolute path와 Relative path

Jungmin Seo·2021년 6월 10일
0

직접 개발한 local package의 경우, import 할 때 해당 package의 위치에 맞게 import 경로를 잘 선언해야 한다.
local package를 import하는 경로에는 absolute path와 relative path가 있다.

아래와 같은 프로젝트로 예를 들어본다.

└── my_app
    ├── main.py
    ├── package1
    │   ├── module1.py
    │   └── module2.py
    └── package2
        ├── __init__.py
        ├── module3.py
        ├── module4.py
        └── subpackage1
            └── module5.py

🍔 Absolute path

from package1 import module1
from package1.module2 import function1
from package2 import class1
from package2.subpackage1.module5 import function2

시작점은 모두 my_app 프로젝트의 최상위 디렉토리인 package1package2
기준은 최상위 디렉토리

from package2.subpackage1.module5 import function2

위의 경로를 리눅스의 경로형식으로 바꾸면

my_app/package2/subpackage1/module5.py

윈도우의 경로형식으로 바꾸면

my_app/package2/subpackage1/module5.py

파이썬에서는 dot.을 사용

package2.subpackage1.module5.py

🍔 Relative path

기준은 현재 위치

# package2/module3.py

from . import class1
from .subpackage1.module5 import function2

dot.은 import가 선언되는 파일의 현재 위치를 말한다.
dot 2개 ..는 현재위치의 상위 디렉토리를 말한다.

# subpackage1/module5.py

from ..module4 import class4
# subpackage1(현재파일의 위치)의 상위디렉토리인 package2에 있는 module4에서 import

  • Absolute path의 경우, 경로의 길이가 너무 길어질 수 있다.
  • Relative path의 경우, 경로의 길이를 줄여줄 수는 있지만,
    헷갈리기 쉽고 파일위치가 변경되면 경로위치도 변경되어야 한다는 단점이 있다.

    🥨 웬만한 경우 Absolute path의 사용을 권장한다.
profile
Hello World!

0개의 댓글

관련 채용 정보