0. 학습 목표

더보기

이번 학습에서는 Python에서 자주 사용하는 모듈, 패키지, 라이브러리의 의미를 구분하고, import와 from을 사용하여 필요한 기능을 가져오는 방법을 학습합니다.

 

또한 pip를 사용하여 외부 패키지를 설치하고, 설치된 라이브러리가 실제 Python 환경 안에서 어떻게 사용되는지 이해합니다.

1. 모듈, 패키지, 라이브러리란?

더보기

Python을 학습하다 보면 모듈(Module), 패키지(Package), 라이브러리(Library)라는 용어를 자주 보게 됩니다.

이 세 용어는 비슷하게 들리지만, Python에서는 각각 의미하는 범위가 조금 다릅니다.

 

라이브러리 > 패키지 > 모듈

용어  의미 
모듈(Module) .py 단일 파일 math.py
패키지(Package) 여러 모듈을 묶은 디렉터리 numpy, pandas
라이브러리(Library) 기능 모음 전체 (패키지 포함, 더 큰 개념) "데이터 분석 라이브러리"

 

2. 실제로 모듈 확인해보기

더보기

이번 예시에서는 random 모듈을 기준으로, 이 용어들의 차이를 쉽게 이해해 보겠습 : 

혼자 공부하는 파이썬 p.406 참고

import random
print("모듈 파일:", random.__file__)
print("사용 예시:", random.randint(1, 10))

 

 

3. 모듈, 패키지, 라이브러리 이미지로 정리

더보기
# import 모듈명
import module3
import module3 as mod3

# from 모듈명 import 모듈 요소
from module3 import function
from module3 import function as fn

module3.function(123)
mod3.function(123)

function(123)
fn(123)
# 패키지 절대 경로 참조
from pacakge.sub_package3 import module1 as mo
mo.function(params)

# 패키지 import
import pacakge as pk
pk.module.function(params)

 

cpython dir

https://github.com/python/cpython/blob/main/Modules/mathmodule.c

 

tensorflow lib.

https://www.tensorflow.org/api_docs/python/tf/keras

 

 

Library, 라이브러리

 

colab, tensorflow directory

!pip show tensorflow

# Version: 2.12.0
# Location: /usr/local/lib/python3.9/dist-packages

 

4.  import, from 사용법

더보기

: import는 가져오는 동작이고, from은 어디에서 가져올지를 지정하는 위치 키워드이다.

 

 

import

: 실제 가져오는 행위를 수행

 

패키지, 모듈, 또는 객체(함수·클래스)를 가져오는 키워드

즉, “무언가를 가져오는 동작” 자체를 담당합니다.

 

 

from

: 경로 지정자

 

가져올 대상의 ‘위치(경로·네임스페이스)’를 지정하는 키워드

즉,  “어디에서 가져올 것인지”를 나타냅니다.

 

 

예시

1) 패키지 전체 가져오기

import numpy

 

 

2) 패키지 내부 모듈만 가져오기

import numpy.random
 

 

3) 특정 모듈을 어느 위치에서 가져올지 지정

 
from numpy import random
# 여기서 from numpy 가 “위치 지정”, import random 이 “가져오기”

 

4) 특정 함수만 가져오기

from math import sqrt
# math(모듈)라는 위치에서, sqrt(함수) 가져오기

5. 외부 패키지 설치

더보기

5.1. pip 업그레이드

python.exe -m pip install --upgrade pip

 

 

5.2. pyside6 설치

python.exe -m pip install pyside6

 

6. 정리

더보기

6.1 예시 코드

아래 코드는 random을 import한 뒤,

이 모듈이 실제 어디에 있는지 확인하고,

그 안에 들어 있는 기능을 사용하는 예시입니다.

import random

print("모듈 파일:", random.__file__)
print("사용 예시:", random.randint(1, 10))

이 코드를 실행하면 보통 아래와 비슷한 결과를 볼 수 있습니다.

모듈 파일: /usr/lib/python3.12/random.py
사용 예시: 7

여기서 중요한 점은 random이 실제로 random.py라는 파일이라는 점입니다.

 

 

6.2 모듈(Module)이란?

Python에서 모듈(Module)은 보통 하나의 .py 파일을 의미합니다.

즉, Python 코드가 들어 있는 파일 하나가 모듈이 될 수 있습니다.

  • random.py → 하나의 모듈
  • math.py → 하나의 모듈
  • mymodule.py → 내가 직접 만든 모듈

위 예시에서 random.__file__을 출력했을 때 /usr/lib/python3.12/random.py가 보였다면, 이것은 random이 실제 Python 파일 형태의 모듈이라는 뜻입니다.

핵심 정리
모듈 = Python 코드가 들어 있는 하나의 .py 파일

 

 

6.3 패키지(Package)란?

패키지는 여러 모듈(.py라는 파일)을 폴더 단위로 묶어 놓은 것이라고 이해하면 쉽습니다.

즉, 모듈이 파일 하나라면, 패키지는 여러 모듈을 담고 있는 폴더 구조입니다.

예를 들어 아래와 같은 구조를 생각해 볼 수 있습니다.

mypackage/
├── __init__.py
├── a.py
├── b.py
└── c.py

여기서:

  • a.py, b.py, c.py는 각각 모듈입니다.
  • mypackage 폴더 전체는 패키지입니다.

즉, 패키지는 모듈 여러 개를 체계적으로 묶어 관리하기 위한 단위라고 볼 수 있습니다.

학습 포인트
모듈은 파일, 패키지는 폴더라고 이해하면 처음에는 가장 쉽습니다.

 

 

6.4 라이브러리(Library)란?

라이브러리라는 용어는 Python 내부의 엄밀한 구조 용어라기보다, 특정 기능을 제공하는 코드 묶음 전체를 넓게 가리키는 표현으로 많이 사용됩니다.

즉, 라이브러리는 보통 모듈 하나일 수도 있고, 여러 패키지와 모듈의 집합일 수도 있습니다.

예를 들어:

  • random → Python 표준 라이브러리에 포함된 모듈
  • requests → 일반적으로 라이브러리라고 많이 부름
  • numpy → 일반적으로 라이브러리라고 많이 부름

즉, 라이브러리는 실무나 일반 설명에서 자주 쓰는 넓은 표현이고, 모듈 패키지는 Python 구조를 설명할 때 더 정확한 표현입니다.

핵심 정리
라이브러리 = 기능을 제공하는 코드 묶음을 넓게 부르는 일반적인 표현