sys.modules와 sys.path의 차이점
그전에 알아야 할것
sys
sys는 파이썬에서 제공하는 모듈이다. os모듈안에 있으며 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다. C언어로 작성되어 있다. 또한 sys는 built-in 되어 있으므로 bulit-in modules에서 찾을 수 있다.
Python에서는 아래와 같은 순서로 module/package를 찾는다.
- sys.modules => built-in modules => sys.path
sys.module
- 파이썬이 제일 먼저 모듈이나 패키지를 찾는곳
- 단순한 딕션너리 구조 그리고 이미 import된 모듈과 package들을 저장
- 즉 한번 import된 모듈과 패키지를 다시 안 찾아도 된다
sys.path
- 파이썬이 마지막으로 보는곳
- 리스트 구조이며 string요소들을 가지고 있는 리스트라고 생각하면 된다
- 파이ㅣ썬에 포함되어 있는 built-in modules
- sys.path에도 발견 못하면 ModuleNotFoundError 에러를 리턴