sys module, sys path(Python)

Wonbin Lee·2022년 3월 6일
0

Python

목록 보기
4/5

Sys module

모듈은 함수나 변수 또는 클래스를 모아놓은 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다. 우리는 파이썬으로 프로그래밍을 할 때 굉장히 많은 모듈을 사용한다. 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고, 우리가 직접 모듈을 만들어서 사용할 수도 있다.


참고문헌:https://wikidocs.net/29

import search 순서

파이썬은 다음 3가지 장소를 순서대로 보면서 찾는다.

sys.modules >> built-in modules >> sys.path

sys.modules

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

sys.modules 는 dictionary 로 구성되어 있으며, 이미 import 된 모듈과 package를 저장하고 있다.

python을 실행하고 한번 이상 import가 되었다면 다시 모듈을 찾지않고 sys.modules 를 확인하여 module 이나 package를 사용하게된다.
한 번 이상 사용되었거나 이미 내장 되어 있는 module이나 패키지만 존재하므로 새롭게 import되는 것들은 없다고 보면 된다.

built-in modules

파이썬에서 기본적으로 제공하는 Libaray들이다. 별도의 설치없이 사용할 수 있다.

sys모듈은 built-in module 이기 때문에 바로 사용할 수 있다.

sys.path

파이썬이 모듈이나 package를 찾기위해 가장 마지막으로 확인하는 곳이다.

sys.path 는 string 요소들을 가지고 있는 list 이며, pip로 새롭게 설치한 패키지는 물론 직접작성한 모듈과패키지를 사용하고자할떄 sys.path 에 등록을 통해서 사용할 수있다.



Absolute path and Relative path(절대경로와 상대경로)

직접 개발한 local package 및 module은 경로를 정확하게 설정해야 제대로 import 할 수 있다.

Absolute path(절대 경로)

프로젝트 내에서 어느 파일, 어느 위치에서 import 하던지 경로가 항상 동일하게 된다.

모든경로를 입력하기 때문에 정확하며, 보통 local package를 사용할때는 절대경로를 사용하면된다.
하지만 경로가 길어질 수 있다는 단점이 있다.

Relative path(상대 경로)

상대경로는 절대경로와 다르게 프로젝트의 최상단 디렉토리를 기준으로 경로를 잡는게 아니라 import 하는 위치를 기준으로 경로를 정의한다. 일반적으로 local package 안에서 다른 local package를 import 할때 사용된다.

선언하는 경로를 줄여주는 장점이 있지만 그만큼 헷갈리기도 쉽고, 파일위치가 변견되면 경로 위치도 변경되어야 하는 단점이 있다.

profile
Developer who level up every day ✌️

0개의 댓글