[Python] Modules & Packages

eslim·2020년 8월 23일
0

Python

목록 보기
9/12
post-thumbnail

Modules & Packages

1. Module

모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일

import <모듈 이름>
<모듈 이름>.<모듈에서 사용하길 원하는 변수/함수/클래스 이름>

모듈을 import 할때 파일 확장자인 ".py" 는 제외하고 파일 이름만 사용해서 import 한다.

2. Package

Package는 module과 마찬가지로 다른 파일에서 불러와서 사용하는 개념이며, 여러 파일에 나누어져 있는 코드들도 다른 곳에서 하나의 module로 불러와서 사용할 수 있도록 해주는것이다.

import pkg.mod1
from pkg.mod2 import func2

pkg.mod1.func2()
func2()

3. 파이썬이 모듈과 패키지를 검색하는 순서

  • 파이썬이 모듈과 패키지를 검색하는 순서
  1. sys.modules
  2. built-in modules
  3. sys.path

3-1. sys.modules

 - 파이썬이 우선적으로 모듈이나 패키지를 찾는 곳
 - 딕셔너리 구조
 - import 되어 있는 모듈과 패키지 저장
 

3-2. built-in modules

- 파이썬에서 제공하는 파이썬 공식 라이브러리들 

3-3. sys.path

 - 파이썬이 모듈이나 패키지를 찾을 때 마지막으로 확인하는 부분
 - 리스트 구조 

Assignment 1

  1. sys.modules 와 sys.path의 차이점을 서술해 주세요.

Answer

  • sys.modules는 파이썬이 제일먼저 모듈이나 패키지를 찾는 곳으로, 딕셔너리 구조로 되어있다. import 되있는 모듈과 패키지를 저장한다. sys.path는 모듈과 패키지를 1,2를 찾고 마지막으로 찾는 곳으로 리스트구조(string 요소)로 되어있다. sys.path에서도 모듈을 발견하지 못하면 ModuleNotFoundError 에러를 리턴한다.

Assignment 2

  1. sys 도 import 해야하는 모듈입니다. 파이썬은 sys 모듈의 위치를 어떻게 찾을 수 있을까요?

Answer

  • sys는 파이썬에서 제공하는 모듈이다. os모듈안에 있으며 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다. 파이썬은 스크립트 실행시 PYTHONPATH, 환경설정, 변수, 위의 모듈들을 순차적으로 실행한다.
'sys': <module 'sys' (built-in)>
  • sys.modules 를 출력해보면 sys 는 built-in modules 라는 것을 확인할 수 있다.

0개의 댓글