이 글에서 다루는 개념
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
'Data Engineering > python' 카테고리의 다른 글
EP13 | 고급 Python 활용 #2 | 멀티스레딩과 멀티프로세싱 (0) | 2025.03.19 |
---|---|
EP12 | 고급 Python 활용 #1 | 함수형 프로그래밍 (Map, Filter, Reduce, List Comprehension) (0) | 2025.03.19 |
EP10 | Python 심화 개념 #4 | 예외 처리와 로깅 (Logging & Exception Handling) (0) | 2025.03.19 |
EP09 | Python 심화 개념 #3 | 정규표현식(Regex)과 문자열 처리 (0) | 2025.03.19 |
EP08 | Python 심화 개념 #2 | 파일 입출력 (CSV, JSON, YAML 다루기) (0) | 2025.03.19 |