0Pricing
Python Academy · 강의

패키지와 __init__.py

적절한 디렉터리 구조로 모듈을 패키지에 구성합니다.

패키지와 __init__.py은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

패키지란 무엇인가요?

패키지는 __init__.py 파일과 하나 이상의 모듈을 포함하는 디렉터리입니다. Python은 이러한 디렉터리를 가져올 수 있는 패키지로 취급합니다.

mypackage/
    __init__.py
    utils.py
    math_helpers.py

__init__.py 파일

패키지를 가져오면 __init__.py가 실행됩니다. 비워 둘 수도 있고, 호출자에게 선택한 이름을 노출할 수도 있습니다.

# mypackage/__init__.py
from .utils import helper
from .math_helpers import add

패키지에서 가져오기

점 표기법을 사용하여 하위 모듈이나 __init__.py에 정의된 이름을 가져옵니다.

import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))

하위 패키지

패키지는 중첩될 수 있습니다. 자체 __init__.py가 있는 하위 디렉터리는 하위 패키지가 됩니다.

mypackage/
    __init__.py
    network/
        __init__.py
        http.py

상대 가져오기

패키지 내부에서는 앞에 점을 붙인 상대 가져오기를 사용하여 패키지 이름을 직접 지정하지 않고 형제 모듈을 참조할 수 있습니다.

# mypackage/network/http.py
from ..utils import helper   # two levels up

절대 가져오기와 상대 가져오기

절대 가져오기는 모호하지 않으므로 권장됩니다. 상대 가져오기는 긴 이름을 피해야 하는 대규모 패키지 내부에서 유용합니다.

# Absolute
from mypackage.utils import helper

# Relative (inside mypackage)
from .utils import helper

__init__.py의 __all__

__all__을 정의하여 from package import *로 내보낼 항목을 제어합니다.

# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import add

네임스페이스 패키지(PEP 420)

Python 3.3 이상에서는 네임스페이스 패키지를 지원합니다. 이는 __init__.py가 없는 디렉터리입니다. 하나의 패키지를 여러 디렉터리로 나누어 구성할 때 유용합니다.

# No __init__.py needed
# Just have the directory and import normally
import myns.module

패키지 __init__ 초기화

__init__.py를 사용하여 패키지 수준의 상수를 설정하거나, 로깅을 구성하거나, 용량이 큰 하위 모듈을 지연 로드할 수 있습니다.

# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'

패키지 배포

pyproject.toml 또는 setup.py를 추가하면 pip로 패키지를 설치할 수 있습니다.

# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"

# Install locally
# pip install -e .

패키지 속성 검사

__file__, __path__, __name__을 사용하여 실행 중에 패키지 메타데이터를 검사할 수 있습니다.

import mypackage
print(mypackage.__file__)   # path to __init__.py
print(mypackage.__path__)   # list of directory paths
print(mypackage.__name__)   # 'mypackage'

빠른 확인

디렉터리를 Python 패키지로 만드는 파일은 무엇인가요?

복습

패키지는 __init__.py를 사용하여 모듈을 디렉터리로 구성합니다. 명확성을 위해 절대 가져오기를 사용하고, 패키지 내부에서는 상대 가져오기를 사용하며, 공개 인터페이스는 __all__로 제어합니다.

자주 묻는 질문

“패키지와 __init__.py” 강의는 무료인가요?

네 — “패키지와 __init__.py” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“패키지와 __init__.py”에서 뭘 배우나요?

적절한 디렉터리 구조로 모듈을 패키지에 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“패키지와 __init__.py” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 모듈 생성과 가져오기
  2. Python 표준 라이브러리
  3. 패키지와 __init__.py
  4. pip로 패키지 설치하기
← Python Academy(으)로 돌아가기