Python에서 네임스페이스 패키지를 사용하면 여러 프로젝트에 Python 코드를 퍼뜨릴 수 있습니다. 이는 관련 라이브러리를 별도의 다운로드로 릴리스하려는 경우에 유용합니다. 예를 들어 PYTHONPATH에 Package-1 및 Package-2 디렉토리가 있는 경우
Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/namespace/__init__.py Package-2/namespace/module2/__init__.py the end-user can import namespace.module1 and import namespace.module2.
Python 3.3에서는 아무 것도 할 필요가 없습니다. 네임스페이스 패키지 디렉토리에 __init__.py를 넣지 않으면 그냥 작동합니다. 이는 Python 3.3이 암시적 네임스페이스 패키지를 도입했기 때문입니다.
이전 버전에는 주어진 네임스페이스에 모듈을 '추가'할 수 있는 pkgutil이라는 표준 모듈이 있습니다. 이 두 줄을 두 패키지에 모두 넣어야 합니다.
1/namespace/__init__.py and Package-2/namespace/__init__.py: from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
이것은 패키지의 이름을 딴 sys.path에 있는 디렉토리의 모든 하위 디렉토리를 패키지의 __path__에 추가합니다. 그런 다음 2개의 패키지를 별도로 배포할 수 있습니다.