Python 모듈과 패키지

안희수·2021년 6월 12일
0

TIL

목록 보기
15/26
post-custom-banner

sys (System-specific parameters and functions) 란 ?

파이썬에서 제공하는 모듈
os모듈안에 있으며 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다

sys 검색 경로 sys.modules => built-in modules => sys.path

sys.modules 와 sys.path의 차이점

sys.modules

딕셔너리구조
파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 장소
이미 import된 모듈과 package들을 저장하고 있다

sys.path

  • 리스트구조

  • sys.modules 에 없으면 sys.path를 검색한다**

  • 파이썬에 포함되어있는 built-in modules
    sys.path에서도 모듈을 발견하지 못하면 ModuleNotFoundError 에러를 리턴

  • sys.path에 정의되어 있는 디렉터리는 크게 3가지로 나뉜다.

    • 파이썬 모듈이 실행되고 있는 현재 디렉터리
    • PYTHONPATH 환경변수에 정의되어 있는 디렉터리
    • 파이썬과 함께 설치된 기본 라이브러리

sys모듈의 path변수는 모듈과 패키지의 검색 경로와 순서를 바꿀 수 있다.
내가 만든 모듈과 패키지의 검색 경로를 추가하여 사용할 수 있다.

sys 모듈의 위치

sys는 인터프리터에 내장되있다

Absolute path와 relative path의 차이점

absolute path는 모듈 및 패키지의 시작부터 끝까지 생략이나 축약되지 않고 명확히 명시된 경로를 뜻한다. 어디에서 쓰든 항상 같아서 사용하는데 헷갈리지 않다는 장점이 있다.

경로의 시작점은 해당 module및 패키지 있는 current directory(이 부분은 sys.path에 자동 등록 되어 있다)으로 하기 때문에 main.py가 아닌 어디에서 사용하던 항상 같은 방법으로 쓰면 된다.

relative path는 최상위 경로가 아닌 현재 자기가 속한 경로를 기준으로 정의한다. 주로 local package안에서 다른 local package를 참조할 때 쓰인다.

profile
9년차 소프트웨어 개발자 (2024년 재 개편 예정입니다)
post-custom-banner

0개의 댓글