파이썬은 코드 구성을 Library, Package, Module 단위를 이용해서 나눈다.
Library > Package > Module
Module은 단순히 module.py와 같이 하나의 파이썬 파일을 나타내는 단위이다.
import를 이용해서 모듈 안에 정의되어 있는 함수, 변수, class 등을 모두 가져올 수도 있고 from을 이용해서 모듈 안에 정의되어 있는 일부 함수, 변수, class만 가져올 수도 있다.
import math # math.py 모듈 import
from math import sqrt # math.py 모듈 안에 있는 sqrt() 함수 import
Package는 여러 모듈 혹은 패키지를 담고 있는 폴더를 나타내는 단위이다.
Library의 존재 때문에 패키지를 단순히 모듈 바로 위의 폴더 혹은 모듈과 라이브러리의 중간 단계로 착각할 수 있지만 사실 파이썬 모듈을 담고 있는 모든 폴더를 패키지라고 부른다.
from package1 import module1
Library는 pip를 통해 배포되는 배포 단위이다.
만약 pip를 통해 다운받는 라이브러리가 하나의 패키지 혹은 하나의 모듈로 이루어졌다고 하면 pip 배포 단위로 볼때에는 라이브러리인 것이고, python 코드에서 import 할 때에는 패키지 혹은 모듈이 되는 것이다.
pip3 install lib1
엄밀히 따지자면 module, package와 library는 단위가 다르기 때문에 Library > Package > Module 이렇게 나타내는 것이 올바르지 않을 수 있다. 하지만 일반적으로 pip를 통해 배포되는 라이브러리 안에 패키지가 있고 그 안에 모듈이 있기 때문에 Library > Package > Module 이렇게 나타내는 것이다.