패키지를 이해하려면 모듈에 대해서도 알아야 합니다. 모든 Python 파일은 모듈이며, 그 이름은 .py 확장자가 없는 파일의 기본 이름/모듈의 __name__ 속성입니다. 패키지는 Python 모듈의 모음입니다. 즉, 패키지는 추가 __init__.py 파일을 포함하는 Python 모듈의 디렉토리입니다. __init__.py는 많은 Python 스크립트를 포함하는 디렉토리와 패키지를 구별합니다. 패키지는 해당 디렉토리에 자체 __init__.py 파일이 포함되어 있는 경우 모든 깊이에 중첩될 수 있습니다.
모듈이나 패키지를 가져올 때 Python에서 생성된 해당 객체는 항상 모듈 유형입니다. 이것은 모듈과 패키지 사이의 구별이 파일 시스템 수준에서만 있음을 의미합니다. 그러나 패키지를 가져올 때 해당 패키지의 __init__.py 파일에 있는 변수/함수/클래스만 직접 볼 수 있으며 하위 패키지나 모듈은 볼 수 없습니다.
예를 들어 DateTime 모듈에는 date라는 하위 모듈이 있습니다. DateTime을 가져올 때 가져오지 않습니다. 별도로 가져와야 합니다.
>>> import datetime >>> date.today() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'date' is not defined >>> from datetime import date >>> date.today() datetime.date(2017, 9, 1)