본문 바로가기
개발&프로그래밍

[Python] 모듈과 패키지

by 재아군 2024. 11. 26.

[Python] 모듈과 패키지

import 문 이해

기본 import 방법

# 모듈 전체 가져오기
import math
print(math.pi)  # 3.141592...

# 특정 함수/변수만 가져오기
from random import randint
number = randint(1, 10)

# 별칭 사용하기
import pandas as pd
import numpy as np

# 여러 항목 가져오기
from datetime import datetime, timedelta

 

패키지 구조 이해

my_package/
    ├── __init__.py
    ├── module1.py
    └── module2.py

# module1.py에서 module2 가져오기
from .module2 import some_function  # 상대 경로
from my_package.module2 import some_function  # 절대 경로

 

자주 쓰는 표준 라이브러리

 

1. datetime

from datetime import datetime, timedelta

# 현재 시간
now = datetime.now()
print(f"현재 시간: {now}")

# 날짜 계산
tomorrow = now + timedelta(days=1)
print(f"내일: {tomorrow}")

 

2. os와 sys

import os
import sys

# 현재 작업 디렉토리
current_dir = os.getcwd()

# 환경 변수 접근
path = os.environ.get('PATH')

# 파이썬 버전 확인
python_version = sys.version

 

3. json

import json

# JSON 데이터 다루기
data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

# JSON 문자열로 변환
json_string = json.dumps(data)

# JSON 파싱
parsed_data = json.loads(json_string)

 

4. random

import random

# 난수 생성
random_number = random.randint(1, 100)

# 리스트 섞기
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)

# 무작위 선택
choice = random.choice(my_list)

 

pip 사용법

기본 명령어

# 패키지 설치
pip install package_name

# 특정 버전 설치
pip install package_name==1.0.0

# 패키지 업그레이드
pip install --upgrade package_name

# 설치된 패키지 목록 보기
pip list

# 패키지 제거
pip uninstall package_name

 

requirements.txt 활용

# 현재 환경의 패키지 목록 저장
pip freeze > requirements.txt

# requirements.txt의 패키지 설치
pip install -r requirements.txt

 

가상환경 설정

virtualenv 사용

# virtualenv 설치
pip install virtualenv

# 가상환경 생성
virtualenv myenv

# 가상환경 활성화
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

# 가상환경 비활성화
deactivate

 

venv 사용 (Python 3)

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

# 가상환경 활성화
# Windows
myenv\Scripts\activate
# macOS/Linux
source myenv/bin/activate

 

conda 환경 관리

# 새 환경 생성
conda create --name myenv python=3.8

# 환경 활성화
conda activate myenv

# 패키지 설치
conda install package_name

# 환경 내보내기
conda env export > environment.yml

 

실전 프로젝트 구조 예시

my_project/
    ├── .gitignore
    ├── README.md
    ├── requirements.txt
    ├── setup.py
    ├── myproject/
    │   ├── __init__.py
    │   ├── config.py
    │   ├── core.py
    │   └── utils.py
    └── tests/
        ├── __init__.py
        └── test_core.py

 

 

.gitignore에 가상환경 제외

echo ".venv/" >> .gitignore

3. **패키지 버전 관리**
```text
# requirements.txt 예시
requests>=2.25.1,<3.0.0
pandas~=1.3.0
numpy==1.21.0

 

댓글