import pkgutil pkgutil.extend_path(path, name)
path
- путь пакета,name
- имя пакета.path
.Функция extend_path()
модуля pkgutil
расширяет путь поиска для модулей, которые составляют разные части одного логического пакета в виде нескольких каталогов.
Предполагаемое использование: поместить следующий код в файл пакета __init__.py
:
from pkgutil import extend_path __path__ = extend_path(__path__, __name__)
Функция pkgutil.extend_path()
добавит к переменной __path__
все подкаталоги каталогов в sys.path
имени пакета. Это полезно, если необходимо распределить разные части одного логического пакета в виде нескольких каталогов.
Функция также ищет файлы *.pkg
, где *
соответствует аргументу имени файла name
. Эта функция похожа на файлы *.pth
, за исключением того, что это не специальные строки, начинающиеся с import
. Файл *.pkg
является доверенным по номиналу: кроме проверки на наличие дубликатов, все записи, найденные в файле *.pkg
, добавляются в путь независимо от того, существуют ли они в файловой системе. (Это особенность.)
Если входной путь не является списком, как в случае замороженных пакетов, то он возвращается без изменений. Входной путь не изменяется, возвращается расширенная копия. Элементы добавляются только к копии в конце.
Предполагается, что sys.path
является последовательностью. Элементы sys.path
, которые не являются строками, ссылающимися на существующие каталоги, игнорируются. Элементы Unicode в sys.path
, которые вызывают ошибки при использовании в качестве имен файлов, могут привести к возникновению исключения этой функцией в соответствии с поведением os.path.isdir()
.