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이 암시적 네임스페이스 패키지를 도입했기 때문입니다.
On older versions, there's a standard module, called pkgutil, with which you can 'append' modules to a given namespace. You should put those two lines in both Package-1/namespace/__init__.py and Package-2/namespace/__init__.py: from pkgutil import extend_path __path__ = extend_path(__path__, __name__)에 넣어야 합니다.
이것은 패키지의 이름을 딴 sys.path에 있는 디렉토리의 모든 하위 디렉토리를 패키지의 __path__에 추가합니다. 그런 다음 2개의 패키지를 별도로 배포하고 python 네임스페이스 패키지를 활용할 수 있습니다.