패키지와 __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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 모듈 생성과 가져오기
- Python 표준 라이브러리
- 패키지와 __init__.py
- pip로 패키지 설치하기