sys (System-specific parameters and functions) 란 ?
파이썬에서 제공하는 모듈
os모듈안에 있으며 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다sys 검색 경로 sys.modules => built-in modules => sys.path
딕셔너리구조
파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 장소
이미 import된 모듈과 package들을 저장하고 있다
리스트구조
sys.modules 에 없으면 sys.path를 검색한다**
파이썬에 포함되어있는 built-in modules
sys.path에서도 모듈을 발견하지 못하면 ModuleNotFoundError 에러를 리턴sys.path에 정의되어 있는 디렉터리는 크게 3가지로 나뉜다.
- 파이썬 모듈이 실행되고 있는 현재 디렉터리
- PYTHONPATH 환경변수에 정의되어 있는 디렉터리
- 파이썬과 함께 설치된 기본 라이브러리
sys모듈의 path변수는 모듈과 패키지의 검색 경로와 순서를 바꿀 수 있다.
내가 만든 모듈과 패키지의 검색 경로를 추가하여 사용할 수 있다.
sys는 인터프리터에 내장되있다
absolute path는 모듈 및 패키지의 시작부터 끝까지 생략이나 축약되지 않고 명확히 명시된 경로를 뜻한다. 어디에서 쓰든 항상 같아서 사용하는데 헷갈리지 않다는 장점이 있다.
경로의 시작점은 해당 module및 패키지 있는 current directory(이 부분은 sys.path에 자동 등록 되어 있다)으로 하기 때문에 main.py가 아닌 어디에서 사용하던 항상 같은 방법으로 쓰면 된다.
relative path는 최상위 경로가 아닌 현재 자기가 속한 경로를 기준으로 정의한다. 주로 local package안에서 다른 local package를 참조할 때 쓰인다.