1.sys.modules / 2. built-in modules/ 3. sys.path 정리

성종호·2021년 11월 6일
0

sys.modules 와 sys.path의 차이점

sys.modules

sys.modules = {key,value} dictionary 형태

  • 이미 import 된 모듈과 패키지를 저장하고 있으며 python이 module이나 pakage를 찾기위해 가장먼저 확인
  • 한번 import한 module과 pakage를 또 다시 찾지않아도 되도록 하는 기능을 가지고 있다.

sys.path

sys.path = ["'/Users/anaconda3/lib/python36.zip'"]
= list형태에 문자열 요소를 가지고 있다.

  • python이 module과 pakage를 찾는 마지막 장소
  • list의 경로 하나 하나 확인하여 import할 module과 pakage가 있는지 확인
  • 새롭게 설치한 pakage도 sys.path에서 설치됨

sys도 모듈이며 python이 sys를 찾는 방법

여기서 built-in modules가 등장하는데

built-in modules = python이 기본으로 제공하는 라이브러리,
python을 설치하면 자동으로 포함됨

  • 여기서 확인해보면 "sys":<module"sys"(built-in)> 인것을 확인할수있다.
    그래서 python이 sys를 처음 import할때 sys.moudles엔 처음 import하니 없을것이고 built-in에서 찾는것을 확인할수 있음

python이 import시 serch 순서

  • sys.modules에서 이미 import한 module인지 확인
  • python이 설치할때 자동으로 설치된 built-in modules에서 검색
  • 마지막으로 사용자가 새롭게설치하거나 만든 pakage가 모여있는 sys.path에서 검색하고 없다면 ModuleNotFoundError를 리턴
profile
아자

0개의 댓글