Pacotes e __init__.py
Organize módulos em pacotes com uma estrutura de diretórios adequada.
Pacotes e __init__.py é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
O que é um pacote?
Um pacote é um diretório que contém um arquivo __init__.py e um ou mais módulos. O Python trata qualquer diretório desse tipo como um pacote do qual você pode fazer importações.
mypackage/
__init__.py
utils.py
math_helpers.pyO arquivo __init__.py
__init__.py é executado quando o pacote é importado. Ele pode estar vazio ou disponibilizar nomes selecionados para quem chama o pacote.
# mypackage/__init__.py
from .utils import helper
from .math_helpers import addImportando de um pacote
Use a notação com ponto para importar submódulos ou nomes definidos em __init__.py.
import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))Subpacotes
Os pacotes podem ser aninhados: um subdiretório com seu próprio __init__.py torna-se um subpacote.
mypackage/
__init__.py
network/
__init__.py
http.pyImportações relativas
Dentro de um pacote, use importações relativas com um ponto inicial para referenciar módulos irmãos sem codificar diretamente o nome do pacote.
# mypackage/network/http.py
from ..utils import helper # two levels upImportações absolutas e relativas
Importações absolutas são inequívocas e preferíveis. Importações relativas são úteis dentro de pacotes grandes para evitar nomes longos.
# Absolute
from mypackage.utils import helper
# Relative (inside mypackage)
from .utils import helper__all__ em __init__.py
Defina __all__ para controlar o que from package import * exporta.
# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import addPacotes de namespace (PEP 420)
O Python 3.3+ oferece suporte a pacotes de namespace — diretórios sem __init__.py. Isso é útil para dividir um pacote entre vários diretórios.
# No __init__.py needed
# Just have the directory and import normally
import myns.moduleInicialização de __init__ do pacote
Use __init__.py para definir constantes no nível do pacote, configurar o registro de logs ou carregar submódulos pesados de forma tardia.
# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'Distribuição de pacotes
Adicione pyproject.toml ou setup.py para tornar seu pacote instalável com pip.
# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"
# Install locally
# pip install -e .Inspecionando atributos de pacotes
Use __file__, __path__ e __name__ para inspecionar os metadados do pacote durante a execução.
import mypackage
print(mypackage.__file__) # path to __init__.py
print(mypackage.__path__) # list of directory paths
print(mypackage.__name__) # 'mypackage'Verificação rápida
Qual arquivo transforma um diretório em um pacote Python?
Recapitulação
Os pacotes organizam módulos em diretórios usando __init__.py. Use importações absolutas para obter clareza, importações relativas dentro de um pacote e __all__ para controlar as APIs públicas.
Perguntas Frequentes
A aula “Pacotes e __init__.py” é grátis?
Sim — o texto completo de “Pacotes e __init__.py” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Pacotes e __init__.py”?
Organize módulos em pacotes com uma estrutura de diretórios adequada. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Pacotes e __init__.py”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação e importação de módulos
- A biblioteca padrão do Python
- Pacotes e __init__.py
- Instalação de pacotes com pip