Python · Avançado · Inglês · Técnico
namespace package
Pacote sem arquivo __init__.py, formado pela junção de diretórios com o mesmo nome em locais diferentes do caminho de importação. Permite dividir um pacote entre várias distribuições.
Onde usar
Usado em plugins e em grandes empresas, em que times diferentes publicam partes de um mesmo prefixo, como empresa.dados e empresa.web. Também aparece por acidente quando se esquece o __init__.py.
Em código
empresa/ # sem __init__.py
dados/
__init__.py
# em outro lugar do sys.path:
empresa/web/__init__.pyExemplos
This is a namespace package, there's no init file.
Isso é um namespace package, não há arquivo init.
Each team ships its own piece of the namespace package.
Cada time entrega sua parte do namespace package.
Cuidado
Esquecer o __init__.py cria silenciosamente um namespace package, o que pode esconder um erro de estrutura e confundir ferramentas de teste.
Sinônimos
pacote de namespace
Antônimos
pacote regular