
다른 파이썬 파일에 있는 변수, 함수, 클래스를 사용하기위해서는 해당 변수, 함수, 클래스가 들어있는 Module과 Package를 아래와 같은 방법으로 import해야한다.
from [모듈이나 패키지] import [원하는 변수, 함수, 클래스]
import 할때 Module과 Package를 찾기위해서 아래와 같은 장소 search 순서가 존재한다. 아래의 순서대로 search 후 해당 Module이나 Package가 없으면 ModuleNotFoundError가 발생한다.
sys.modules
built-in modules
sys.path
각각의 장소가 무엇인지에 대해 알아보자.
파이썬이 모듈이나 패키지를 찾기위해 가장 먼저 확인하는 곳으로 이미 import된 모듈과 패키지를 저장하고 있는 dictionary이다. 이미 한번 import된 모듈과 패키지는 파이썬이 다시 찾지 않도록 하기위해 가장먼저 이전에 import된 목록을 확인하는 것이다. (새롭게 import하는 모듈이나 패키지는 여기 없다!)
두번째로 확인하는 곳인 uilt-in modules은 파이썬에서 제공하는 공식 라이브러리이다. 이러한 빌트인 모듈은 이미 파이썬을 설치할 때부터 함께 포함되어 있기 때문에 쉽게 찾을 수 있다.
마지막을 확인하는 sys.path는 str요소들을 가지고있는 list이다. 이 list에는 로컬 프로젝트들의 경로들이 적혀있는데 파이썬 모듈이나 패키지를 import하게되면 이 경로들을 하나하나 살펴보며 어느 경로인지 확인하는 것이다.sys또한 파이썬에 기본으로 내장되어있는 built-in modules이다. 이 sys모듈을 import하여 path를 출력하거나 수정할 수 있다.
sys 모듈의 위치
sys 모듈을 사용하기위해서는 파이썬은 built-in modules에서 찾아 사용하게 된다.
sys.modules 와 sys.path의 차이점
sys.modules은 이미 한번 import된 dictionary구조의 목록
sys.path는 패키지의 경로가 적혀있는 list구조의 목록
참조