파이썬의 패키지는 모듈을 디렉토리로 구조화해서 관리 하는것이다.쉽게 말해 모듈들의 집합이다.
그냥 모듈파일을 디렉토리에 정리해 놓은 것과 패키지의 차이는
__init__.py
파일의 유무로 알 수 있다. 디렉토리 안에__init__.py
파일이 있으면 패키지이다.
__init__.py
이 파일을 디렉토리안에 같이 위치시킴으로써 모듈들의 모음이 패키지가 된다. 패키지 내의 디렉토리에는 __init__.py
파일이 반드시 있어야 한다.
파이썬 3.3 이상부터는
__init__.py
파일이 없어도 패키지로 인식되지만, 호환성을 고려해서 디렉토리 내에 파일을 두는것을 권장
그리고 복잡한 설정을 거치지 않고도 __init__.py
파일이 있으면 파이썬은 그 위치를 찾아준다. __init__.py
파일이 없는 디렉토리에서 모듈을 임포트하려고 하면 파이썬은 그 하위 디렉토리를 더 이상 찾지 않는다.
__init__.py
파일 내부에 해당 디렉토리내에 모듈 파일들이 공통적으로 사용되는 기능이나 모듈을 선언 해서 사용 할 수 있다. 또 해당 패키지가 임포트 될 때 같은 디렉토리내에 있지만 제외 할 모듈을 정해서 제외 시킬 수도 있다.