[Python]sys.modules와 sys.path

Jimin_Note·2022년 5월 26일
0

[Python]

목록 보기
18/34

📍sys

파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈

# argv_test.py
import sys
print(sys.argv)

강제로 스크립트 종료하기 - sys.exit

sys.exit()

프로그램 파일 안에서 사용하면 프로그램을 중단시킨다.

자신이 만든 모듈 불러와 사용하기 - sys.path

sys.path

파이썬 모듈들이 저장되어 있는 위치를 나타낸다. 즉, 이 위치에 있는 파이썬 모듈은 경로에 상관없이 어디에서나 불러올 수 있다.

 import sys
 sys.path
['', 'C:\\Windows\\SYSTEM32\\python37.zip', 'c:\\Python37\\DLLs', 
'c:\\Python37\\lib', 'c:\\Python37', 'c:\\Python37\\lib\\site-packages']

위에서 ''는 현재 디렉터리를 말한다.
sys.path는 기본적으로 list이며 string 요소들을 가지고 있는 list이다.

# path_append.py
import sys
sys.path.append("C:/doit/mymod")

위와 같이 파이썬 프로그램 파일에서 sys.path.append를 사용해 경로 이름을 추가

이렇게 하고 난 후에는 C:/doit/Mymod 디렉터리에 있는 파이썬 모듈을 불러와서 사용할 수 있다.

※ 파일 경로를 표시할 때 반드시 / 또는 \ 기호를 사용해야 한다.

sys.modules

파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 곳

단순한 dictionary이며 이미 import된 모듈과 package들을 저장하고 있다

즉, 한번 import된 모듈과 package들은 파이썬이 또 다시 찾지 않아도 되도록 하는 기능을 가지고있다.

그러므로 새로 import 하는 모듈은 sys.modules 에서 찾을 수 없다!!

파이썬은 list의 각 경로를 하나 하나 확인하면서 해당 경로에 import 하고자 하는 package가 위치해 있는지 확인합니다.

정리를 하자면, 파이썬은 import 하고자 하는 모듈과 package를 찾을때에 먼저 sys.modules를 보고, 없으면 파이썬 built-in 모듈들을 확인 하고 마지막으로 sys.path에 지정되어 있는 경로들을 확인해서 찾는다.

profile
Hello. I'm jimin:)

0개의 댓글