- sys.modules
- built-in modules
- sys.path
<sys.modules>
<sys.path>
코드창에서 import sys
를 선언해 sys 모듈을 불러온 후에 sys.modules
를 출력한다. 출력된 딕셔너리 중 첫번째에 'sys': <module 'sys' (built-in)>
이라는 결과를 확인할 수 있다. Built-in modules는 파이썬에서 제공하는 파이썬 공식 라이브러리들이다. Built-in modules은 이미 파이썬에 포함되어 나오므로 파이썬이 쉽게 찾을 수 있다.
제일 큰 차이점은 경로의 시작점이 다르다는 것이다.
아래에 둘을 비교해 보았다.
Absolute path
ㄴ my_app
ㄴ main.py
ㄴ package1
| ㄴ module1.py
| ㄴ module2.py
ㄴ package2
ㄴ __init__.py
ㄴ module3.py
ㄴ module4.py
ㄴ subpackage1
ㄴ module5.py
이렇게 my_app 이라는 프로젝트가 있다고 가정한다.
현재 위치는 my_app 프로젝트 안에 있기 때문에 my_app은 생략한다.
# module2에 있는 함수들을 불러오고 싶다면
from package1 import module2
# module5에 있는 함수들을 불러 오고 싶다면
from package2.subpackage1 import module5
# module3에 있는 함수 function3 을 불러오고 싶다면
from package2.module3 import function3
이런 식으로 파일의 경로를 쭉 쓰면서 찾아가면 된다.
relative path
ㄴ my_app
ㄴ main.py
ㄴ package1
| ㄴ module1.py
| ㄴ module2.py
ㄴ package2
ㄴ __init__.py
ㄴ module3.py
ㄴ module4.py
ㄴ subpackage1
ㄴ module5.py
# 현재 위치 package2\module3.py
# module4에 있는 class1을 import 하고 싶다면
from . import class1
# module5 에 있는 function3을 import 하고 싶다면
from .subpackage.module5 import function3
# (..) 은 상위 디렉토리로 올라간다
# module2에 있는 함수들을 import 하고 싶다면
from .. import module2