sys.module sys.path

배찬영·2021년 5월 16일
0

파이썬

목록 보기
30/31

sys.module

sys 모듈은 파이썬을 설치할 때 함께 설치되는 라이브러리 모듈이다. sys 모듈을 사용하면 파이썬 라이브러리가 설치되어 있는 디렉터리를 확인할 수 있다.
출처 : https://wikidocs.net/29

dictionary 구조이면서 이미 import된 모듈과 package들을 저장 때문에 새로 import한 모듈을 가지고 있지 않음.

sys.path

sys.path는 파이썬 라이브러리가 설치되어 있는 디렉터리를 보여 준다. 만약 파이썬 모듈이 위 디렉터리에 들어 있다면 모듈이 저장된 디렉터리로 이동할 필요 없이 바로 불러서 사용할 수 있다.
출처 : https://wikidocs.net/29

list 구조이면서 string 요소들을 가지고 있다.

sys 모듈의 위치

위 사진과 같이 sys의 위치를 출력 했을 때 < module 'sys' (built-in) > 로 나온다

절대경로 ( Absolute path ), 상대경로 ( relative path )

절대 경로란 import 할 모듈의 모든 위치이다.
주소로 예를 들자면
wecode의 절대 경로 : 서울특별시 강남구 삼성동 테헤란로 427
상대 경로 : 선릉역 10번 출구에서 5 ~ 10분거리 ( 현재 내가 선릉역에 있다는 가정 )이 된다.

다시 넘어와서

해당 파일들이 나열 되어있다라고 해보자. module3.py 위치에서 module5.py의 function2을 import하고 싶다면

from .subpackage1.module5 import function2 #상대 경로
from package2.subpackage1.module5 import function2 #절대 경로

위에 코드 처럼 나타낼 수 있다.

절대 경로, 상대 경로 실습

해당 파일들을 만들고 실습을 해보았다.

main.py에서 는 상대 경로가 아닌 절대 경로로 import해주어야 한다.

add_and_multiply.py에서는 multiplication.py를 import하기 위해서는 상대 경로로 설정 해주어야한다.

결과값 5 출력.

위에 내용 처럼 main에 상대 경로로 놓게 되면

ImportError: attempted relative import with no known parent package

해당 에러 발생.

init.py

__init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 한다. 
만약 game, sound, graphic 등 패키지에 포함된 디렉터리에 __init__.py 파일이 없다면 패키지로 인식되지 않는다.
profile
안녕하세요

0개의 댓글