티스토리 뷰

파이썬(Python)에서 패키지(package)의 의미와 사용

지난번 파이썬 모듈에 대한 이해에 이어서 좀더 상위 구조인 패키지(package)를 이해하고 넘어가도록 합시다.

파이썬에서 패키지(package)란?

패키지(package)는 '점으로 구분된 모듈 네임들'을 사용함으로 파이썬의 모듈 네임스페이스(이름공간)를구조화하는 방법입니다.가령 모듈 네임 'A.B'는 'A' 패키지 이름 내의 하위 모듈네임을 지정합니다.다음은 사운드 데이터를 다루는 패키지의 예제 입니다.

Sound/                             Top-level package
          __init__.py       Initialize the sound package
          Formats/           Subpackage for file formats
                  __init__.py
                  wavread.py
                  wavwrite.py
                  aiffread.py
                  aiffwrite.py
                  auread.py
                  auwrite.py
                  ...
          Effects/          Subpackage for sound effects
                  __init__.py
                  echo.py
                  surround.py
                  reverse.py
                  ...
          Filters/                Subpackage for filters
                  __init__.py
                  equalizer.py
                  vocoder.py
                  karaoke.py
                  ...

__init__.py

일반 디렉토리와 패키지 디렉토리를 구분하게 해주는 파일입니다. 이게 없으면 패키지로 임포트(import) 할 수 없습니다. 만약 이 파일이 없는 상태에서 import sound 라고 하면 에러가 발생되는 거죠.

패키지의 임포트 방법들

import Sound.Formats.wavread --> wavread 모듈을 임포트 합니다.

Sound.Formats.wavread.fun() --> 함수 호출인데 이름이 너무 길군요.

from Sound.Formats import wavread --> 위와 동일한 wavread 모듈을 임포트 입니다.

wavread.fun() --> 함수 호출 이름이 짧아 졌군요.