어떻게 import로 module과 package를 찾을것 인가? - python

Junghyun Park·2021년 5월 20일
0

Import Search 순서

1. sys.modules
2. built-in modules
3. sys.path

=> 1부터 3순서대로 검색함, sys.path에서도 못찾으면 ModuleNotFoundError 에러를 리턴

1. sys.modules

파이썬 모듈이나 패키지를 찾기위해 가장 먼저 확인하는 곳
단순한 dictionary이고, import된 모듈과 package를 저장하고 있음
즉, 한번 import된 모듈과 package를 파이썬이 또 다시 찾지 않아도 되도록하고, 새로 import하는 모듈은 sys.modules에서 찾을 수 없음

2. built-in modules

파이썬에서 제공하는 파이썬 공식 라이브러리들
이미 파이썬에 포함되어 있으므로 파이썬이 쉽게 찾을 수 있음

3. sys.path

string 요소들을 가지고 있는 list임
string으로 저장된 경로를 하나하나 확인하면서 해당 경로에 import하고자 하는 패키지가 위치해 있는지 확인
sys는 파이썬에 포함되어 있는 모듈이며, sys 모듈을 import해서 sys.modules와 sys.path를 출력할 수도 있고 수정할 수도 있음

Absolute Path & Relative Path

직접 개발한 local package를 import하는 경로는 위 2가지가 있음
Absolute Path는 default로 저장된 current directory로부터 경로를 시작
Relative Path는 '.'로 시작하면 현재 파일 위치 경로부터 시작이고, '..'는 현재 파일 위치의 바로 상위 디렉토리 경로
다만, Relative Path는 경로길이를 줄여지지만 파일위치가 변경되면 경로도 변경되므로 가급적 ab solute path를 사용할 것

profile
21c Carpenter

0개의 댓글