Palavras-chave: pacote, módulo, import
Criar um módulo em Python é extremamente simples. Basta apenas criar um arquivo .py dentro de algum diretório listado em sys.path. Alguns desenvolvedores também gostariam de fazer pacotes com módulos em Python. Esses pacotes permitiriam que o programador importasse seus módulos da seguinte maneira:
import meu_pacote.meu_subpacote.modulo from outro_pacote.outro_subpacote import outro_modulo
Um pacote nada mais é do que um diretório no sistema de arquivos que possui um arquivo __init__.py dentro. Dentro do arquivo __init__.py, deve-se colocar o código de inicialização do pacote, bem como definir a variável __all__, que irá listar todos os símbolos que serão importados no comando from ... import *. No caso em que o arquivo __init__.py fica vazio todos símbolos do pacote serão importados.
Considere a seguinte estrutura:
# meu_pacote/ # __init__.py -- vazio # meu_subpacote/ # __init__.py -- vazio # modulo.py -- imprime "modulo importado"
A partir do diretório atual podemos fazer:
>>> import meu_pacote.meu_subpacote.modulo modulo importado
Se os arquivos __init__.py não existissem um erro como este aconteceria:
>>> import meu_pacote.meu_subpacote.modulo Traceback (most recent call last): File "", line 1, in ? ImportError: No module named meu_pacote.meu_subpacote.modulo
Muuuuuito bom!!!
Já me perguntei uma vez como faria para importar um ou mais módulos dentro de um diretório, e agora achei a solução!!!
Valeu!!!
Como eu faço para alterar o varlo de sys.path?
sys.path é uma lista comum, logo, ela possui os mesmos métodos de manipulação de uma lista tais como list.append(), list.insert(), etc.
ainda não consegui fazer nenhum pacote.
aparece uma mensagem dizendo que não existe nenhum modulo com o tal nome!
Olá Vramos,
Você não se esqueceu de nada? Colocou o arquivo __init__.py (mesmo que seja vazio) dentro do diretório do “package”?
Outra pergunta: O diretório onde você colocou o “package” está no seu sys.path (lembrando que o diretório atual está no sys.path)?
Osvaldo estou com um problema estou tentando executar um arquivo que se chama anotato.py só que ele me ocorre o seguinte erro:
Traceback (most recent call last):
File “annotpipe.py”, line 13, in
from gcn.lib.varann.vartype.varant import annotador
ImportError: No module named gcn.lib.varann.vartype.varant
Qual procedimento devo tomar em relação a isso?
Atenciosamente e desde já obrigado!
Resumiu lindamente a criação de pacotes.
A maioria dos tutoriais usa IDEs e não deixam claro como acontece a mágica.
Valeu