Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 3에서 Python 네임스페이스 패키지를 만드는 방법은 무엇입니까?


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개의 패키지를 별도로 배포할 수 있습니다.