python 인터프리터는 아래와 같이 모듈의 저장 위치를 찾는다.
sys.modules → built-in modules → sys.path
import
해야 하는 모듈
이다.built-in
되어 있기에 built-in modules
에서 찾을 수 있다import sys
dictionary 구조
로 되어 있다.ModuleNotFoundError
라는 에러를 리턴한다.list 구조
이며, 쉽게 말해 string element들을 갖고 있는 list이다.차이점 | sys.module | sys.path |
---|---|---|
모듈 위치 찾을 때 | 제일 먼저 보는 곳 | 가장 마지막으로 보는 곳 |
구조 | dictionary 구조 (key & value) | list 구조 + string 요소 |
sys 모듈은 이미 파이썬에 내장 되어 있기에, sys.builtin_module_names
를 출력하면 내당 모듈에 sys 모듈이 나온다
import sys
print(sys.builtin_module_names)
차이점 | 절대 경로(absolute path) | 상대 경로(absolute path) |
---|---|---|
목적지까지 이르는 경로 | 최상위부터 모두 표시 | 현재(작업 중인 디렉토리) 위치 |
장점 | 전체적인 경로를 빠르게 파악할 수 있다 | 깔끔하다 |
단점 | 하위 디렉토리가 많으면 경로의 길이가 너무 길어진다 | 경로를 헷갈리기 쉽다 |
절대 경로
from package2.subpackage1.module5 import function2
# package2 디렉토리 → subpackage1 디렉토리
# → module5 모듈의 function2 함수를 import
상대 경로(.
는 현재 위치를, ..
는 상위 디렉토리를 의미)
from .subpackage1.module5 import function2
# 현재 디렉토리의 하위 디렉토리 subpackage1
# → module5 모듈의 function2 함수를 import
(파이썬 코딩도장) Unit 44. 모듈과 패키지 사용하기
(점프 투 파이썬) 05-6 라이브러리
(GeeksforGeeks) Python sys Module
(tistory, daco2020) sys.module 과 sys.path 의 차이점
(velog, byoungju1012) TIL 12. Python - sys 모듈과 path