파이썬이 module과 package 검색하는 방법

박준영·2021년 5월 17일

import search 순서

  • 파이썬은 모듈/package를 3가지 장소를 순서대로 찾습니다.
  1. sys.modules
  2. built-in-modules
  3. sys.path
  • sys.modules - 파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 곳입니다.
    sys.modules는 단순한 dictionary 입니다. 그리고 이미 import된 모듈과 package들을 저장하고 있습니다. 즉, 한번 import된 모듈과 package들은 파이썬이 또 다시 찾지 않아도 되도록 하는 기능을 가지고 있습니다. 그러므로 새로 import 하는 모듈은 sys.modules 에서 찾을 수 없습니다.

  • built-in-modules - 파이썬에서 제공하는 파이썬 공식 라이브러리들 입니다. Built-in 모듈들은 이미 파이썬에 포함되어 나오므로 파이썬이 쉽게 찾을 수 있습니다.

  • sys.path - 기본적으로 list이며 string 요소들을 가지고 있는 list 입니다.

    참고로 sys 는 파이썬에 포함되어 있는 모듈입니다. 그러므로 다음 처럼 sys 모듈을 import 해서 sys.modules와 sys.path 를 출력할수도 있고 수정 할 수 도 있습니다.




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

sys.modules

  • 파이썬이 제일먼저 모듈이나 패키지를 찾는곳이다.
  • 단순한 딕셔너리이다.
  • import 되있는 모듈과 패키지 저장 (다시 찾지 않아도 됨)

sys.payh

  • 기본적으로 list입니다.
  • 파이썬에 포함되어 있는 모듈
  • sys.path 에서도 못찾으면 ModuleNotFoundError 에러를 리턴합니다.

0개의 댓글