Data Engineering/python

EP11 | Python 심화 개념 #5 | 모듈과 패키지 관리

ygtoken 2025. 3. 19. 22:46
728x90

이 글에서 다루는 개념

Python에서는 모듈(Module)과 패키지(Package) 개념을 활용하여 코드를 효율적으로 관리할 수 있습니다.
이번 글에서는 다음 내용을 학습합니다.

  • 모듈(Module)이란? (import 사용법)
  • 내장 모듈(Built-in Module)과 사용자 정의 모듈
  • 패키지(Package)와 __init__.py의 역할
  • 가상 환경(Virtual Environment)과 pip를 활용한 패키지 관리

1️⃣ 모듈(Module)이란?

모듈(Module)은 Python 코드가 작성된 파일을 의미하며, 다른 Python 파일에서 불러와 사용할 수 있습니다.
파일 확장자는 .py이며, import를 사용하여 모듈을 불러옵니다.

🔹 모듈 불러오기 (import)

Python에서 제공하는 내장 모듈을 import하여 사용할 수 있습니다.

import math  # math 모듈 가져오기

print(math.sqrt(16))  # 4.0 (제곱근)
print(math.pi)        # 3.141592653589793

🔹 특정 함수만 불러오기 (from 모듈명 import 함수명)

from math import sqrt, pi

print(sqrt(25))  # 5.0
print(pi)        # 3.141592653589793

2️⃣ 사용자 정의 모듈 만들기

Python에서는 직접 만든 모듈을 불러와 사용할 수도 있습니다.
예를 들어, mymodule.py 파일을 생성하고 다음 코드를 작성합니다.

# mymodule.py (사용자 정의 모듈)
def greet(name):
    return f"Hello, {name}!"

PI = 3.141592

다른 Python 파일에서 import mymodule을 사용하여 불러올 수 있습니다.

import mymodule

print(mymodule.greet("Alice"))  # Hello, Alice!
print(mymodule.PI)  # 3.141592

📌 모듈 검색 경로 확인 (sys.path)
Python이 모듈을 찾는 경로를 확인하려면 sys.path를 사용합니다.

import sys
print(sys.path)

3️⃣ 패키지(Package)란?

패키지(Package)는 여러 개의 모듈을 포함하는 폴더입니다.
패키지를 만들려면 폴더 내부에 __init__.py 파일을 추가해야 합니다.

📌 예제 디렉터리 구조

mypackage/  
 ├── __init__.py  # 패키지 초기화 파일
 ├── module1.py   # 첫 번째 모듈
 ├── module2.py   # 두 번째 모듈

🔹 패키지 불러오기

from mypackage import module1

print(module1.hello())  # "Hello from module1"

📌 패키지 내부에서 __init__.py를 설정하면 편리하게 가져올 수 있습니다.
예를 들어, mypackage/__init__.py 파일에 다음을 추가하면

from .module1 import hello
from .module2 import goodbye

이제 import mypackage만으로 내부 기능을 사용할 수 있습니다.

import mypackage

print(mypackage.hello())  # Hello from module1

4️⃣ 가상 환경(Virtual Environment)과 pip 사용

🔹 가상 환경 만들기 (venv)

가상 환경은 프로젝트별로 Python 패키지를 관리할 수 있도록 도와줍니다.

# 가상 환경 생성
python -m venv myenv

# 가상 환경 활성화 (Windows)
myenv\Scripts\activate

# 가상 환경 활성화 (Mac/Linux)
source myenv/bin/activate

📌 가상 환경을 활성화하면 (myenv) 표시가 나타납니다.
가상 환경을 비활성화하려면 deactivate를 입력하면 됩니다.

# 가상 환경 비활성화
deactivate

🔹 패키지 설치 및 관리 (pip)

Python 패키지 관리 도구인 pip을 사용하여 패키지를 설치할 수 있습니다.

# 패키지 설치
pip install requests

# 설치된 패키지 목록 확인
pip list

# 특정 패키지 정보 확인
pip show requests

# 패키지 삭제
pip uninstall requests

📌 requirements.txt로 패키지 관리
모든 패키지를 저장하여 나중에 쉽게 설치할 수 있습니다.

# 현재 설치된 패키지를 requirements.txt에 저장
pip freeze > requirements.txt

# requirements.txt 기반으로 패키지 설치
pip install -r requirements.txt

📌 실전 문제: 모듈과 패키지 연습하기


문제 1: math 모듈 활용하기

📌 math 모듈을 사용하여 144의 제곱근을 구하고, π 값을 출력하세요.

import math
# 🔽 여기에 코드 작성
import math

print(math.sqrt(144))  # 12.0
print(math.pi)  # 3.141592653589793

문제 2: 사용자 정의 모듈 만들기

📌 새로운 Python 파일(mymodule.py)을 생성하여 다음 기능을 구현하세요.

  • greet(name) 함수 → "Hello, name!" 반환
  • PI = 3.141592

그리고, 다른 Python 파일에서 mymodule을 불러와 greet("Alice")와 PI를 출력하세요.

# 🔽 mymodule.py 파일 생성 후 코드 작성
# mymodule.py
def greet(name):
    return f"Hello, {name}!"

PI = 3.141592
# main.py (다른 파일에서 import)
import mymodule

print(mymodule.greet("Alice"))  # Hello, Alice!
print(mymodule.PI)  # 3.141592

문제 3: 가상 환경 생성 및 패키지 설치

📌 가상 환경을 생성하고 requests 패키지를 설치하는 명령어를 작성하세요.

# 🔽 여기에 명령어 작성
# 가상 환경 생성
python -m venv myenv

# 가상 환경 활성화 (Windows)
myenv\Scripts\activate

# 가상 환경 활성화 (Mac/Linux)
source myenv/bin/activate

# requests 패키지 설치
pip install requests

 

728x90