Python sys.modules & sys.path

minch·2021년 7월 8일
0

Python

목록 보기
5/13
post-thumbnail

Python Standard Library

Python 표준 라이브러리는 사용자들의 편의성을 맞추기 위해 설치 할 때 기본적으로 내장되어 있거나, 설치 되어있는 모듈, 함수를 뜻한다.

Python Standard Library 홈페이지

여러 종류의 라이브러리가 존재하며, 이 중에서 불러온 module을 확인할 때, 그리고 modules의 directory를 확인 할 수 있는 sys 모듈의 sys.modulessys.path에 대해 알아보자.

import module

먼저 python에서 module을 불러올 때,
python에서는 다음과 같은 순서로 module을 찾고 불러오게 된다.

1. sys.modules
2. built-in modules
3. sys.path

sys.modules

sys.modules는 python에서 이미 불러온 모든 module를
dict{ }형태로 mapping하여 저장한 다음,
사용자가 확인할 수 있도록 하는 module이다.

그냥 sys.modules를 실행하니, sys가 정의되지 않았다는 오류가 발생한다.
sys 또한 module로 import를 통해 불러와야 하는 것이다.

  • 그렇다면, sys module은 어떻게 찾지?

위와 같은 형태로 sys.modules을 실행하게 되면,
불러왔던 모든 module을 확인 할 수 있다.

built-in modules

이것은 python에서 제공하는 공식 라이브러리들이다.
위의 사진에서 확인 할 수 있듯이,
상당히 많은 라이브러리들이 기본적으로 설치되어 작동하고 있다.

  • 위에서 생각했던 고민에 대한 해답이 여기에 있다.
    sys는 python에 built-in 되어있기 때문에 쉽게 찾을 수 있는 것이다!

sys.path

마지막으로 확인하는 sys.path는 기본적으로 설정되어 있는 경로들과,
python 인터프리터를 불러온 파일의 경로(즉, script파일이 포함된 directory, path[0])들을 list의 형태로 나타내준다.

sys.modules와 sys.path 둘 다 수정이 가능하지만,
modules의 경우엔 python에 오류를 불러오기 쉬움으로 주의가 필요하다.
(python에서도 예상대로 작동되지 않는다고 권장하지 않는다.)

참조
(https://docs.python.org/ko/3/library/sys.html)

0개의 댓글