Python sys모듈, 상대경로/절대경로/ __init__.py 대해서

Nicholas·2022년 4월 30일
0

Python

목록 보기
29/31

1. sys.modules 와 sys.path의 차이점

sys.modules

  • 파이썬이 모듈이나 패키지를 찾기 위해 가장 먼저 확인하는 곳
  • 디렉토리를 의미하며 이미 import된 모듈과 패치지를 보관하는 곳
  • 새로 import된 모듈은 여기서 찾을 수 없다.

sys.path

  • 파이썬이 모듈이나 패키지를 찾기 위해 가장 마지막에 확인하는 곳
  • 기본적으로 list형태로 있으며 list에서 각 경로를 표시해해준다.
  • 파이썬이 이 list의 각 경로를 하나씩 확인하면서 import해야되는 모듈이나 패치지들을 확인한다.

sys

  • 기본적으로 파이썬을 설치할때 같이 설치되어있는 모듈
  • sys모듈에는 modules와 path를 가지고있다.

ModuleNotFoundError

  • 파이썬이 모듈을 찾을 때 순서
    최초 sys.modules확인 후 없으면 built-in 모듈확인 없으면 sys.path 확인
  • sys.path에서도 모듈을 찾을 수 없을때 ModuleNotFoundError 오류 리턴

2. sys 모듈의 위치 확인

  • sys모듈은 파일로 존재하지않고 C언어로 프로그래밍되어 파이썬안에 내장되어있다.

    내장모듈 확인
    파이썬에서 아래 코드를 확인하면 파이썬 내장모듈을 확인할 수 있다.

    import sys
    print(sys.builtin_module_names)

3. Absolute path와 relative path의 차이점

Absolute path(상대경로)

  • 현재 작업중인 디렉토리를 기준으로 경로를 설명한다.

relative path(절대경로)

  • 현재 작업중인 디렉토리를 기준으로 하지않고 루트디렉토리를 기준으로 한다.
  • 도메인/ip주소 가 절대경로에 속한다.

4. __init__.py 파일의 역할

1. 해당 디렉토리가 패키지의 일부임을 알려주는 역할

2. 해당 디렉토리의 모든모듈을 import할때 import할수있는 모듈을 정의할때 사용

profile
WEB Developer

0개의 댓글