Skip to content

KR_Package

somaz edited this page Mar 11, 2025 · 5 revisions

📌 Python 패키지(Package) 개념 정리


1️⃣ 패키지(Package)란?

패키지는 모듈들을 모아놓은 디렉터리로, 관련된 모듈들을 체계적으로 관리할 수 있게 해준다.

mypackage/
    __init__.py
    module1.py
    subpackage/
        __init__.py
        module2.py

2️⃣ 패키지 구조와 임포트

# 전체 모듈 임포트
import mypackage.module1

# 특정 함수만 임포트
from mypackage.module1 import function1

# 서브패키지의 모듈 임포트
from mypackage.subpackage import module2

3️⃣ init.py 파일

# mypackage/__init__.py

# 버전 정보
VERSION = '1.0.0'

# 공개할 모듈 지정
__all__ = ['module1', 'module2']

# 패키지 초기화 코드
print("Initializing package...")

# 하위 모듈 자동 임포트
from .module1 import function1

4️⃣ 상대 경로 임포트

# 현재 디렉터리
from . import module1

# 부모 디렉터리
from .. import other_module

# 부모의 다른 패키지
from ..other_package import some_module

5️⃣ 네임스페이스 패키지

# 여러 위치에 분산된 패키지
path1/mypackage/module1.py
path2/mypackage/module2.py

# PYTHONPATH에 path1과 path2 추가
import mypackage.module1
import mypackage.module2

6️⃣ 패키지 배포

# setup.py
from setuptools import setup, find_packages

setup(
    name="mypackage",
    version="1.0.0",
    packages=find_packages(),
    install_requires=[
        'requests>=2.22.0',
    ],
)

패키지 작성 Tip:

  • 명확한 패키지 구조 설계
  • init.py 파일 적절히 활용
  • 순환 참조 피하기
  • 상대 경로 임포트 주의
  • 패키지 문서화

Clone this wiki locally