Bom dia, Tudo bem?
Na hora de executar esta aparecendo o seguinte erro:
Esse é o meu código:
Revi a aula e não encontrei nenhum erro. Poderia me ajudar?
Bom dia, Tudo bem?
Na hora de executar esta aparecendo o seguinte erro:
Esse é o meu código:
Revi a aula e não encontrei nenhum erro. Poderia me ajudar?
Olá Julia, tudo bem?
Pelo erro podemos concluir que o Python não está conseguindo encontrar o módulo modelos
. Isso pode ocorrer por alguns motivos, mas o principal é relacionado ao nível de pasta que você se encontra dando conflito com a organização das suas pastas.
Como não consigo identificar nenhum dos pontos que comentei nos seus prints, peço que compartilhe todo o seu projeto usando o GitHub ou envie prints do nível de pasta em que você está (abra o terminal, ele deve mostrar essa informação) e das pastas e arquivos na lateral esquerda do VS Code.
Bom dia Armano, Tudo bem sim e com você?
Segue o link do github: https://github.com/JuliaCassillo/Programa_Restaurante
Estou tentando achar o problema mas não encontro , tentei deixar sem sinalizar a pasta modelos.avaliação colocando apenas avaliacao como vi em outro tópico mas o erro continua.
Obrigada pela ajuda.
Boa tarde, Julia!
Notei alguns problemas no seu projeto, vou apresentá-los de forma separada para ficar mais fácil a identificação por sua parte.
Importação no arquivo restaurante.py
: o arquivo restaurante.py
é um arquivo de classe, nada mais que uma estrutura que servirá como base para a construção de um objeto, porém, ela importa a classe Avaliacao
e como ela está dentro da pasta "modelos" é necessário passar o caminho completo da importação para o arquivo app.py
reconheça essa importação quando criarmos um objeto Restaurante
.
Basicamente nesse caso você deve modificar a importação para ficar assim:
from modelos.avaliacao import Avaliacao
Problemas de formatação no seu método da classe Restaurante
: o seu método de classe listar_restaurantes
apresenta alguns problemas de indentação errada. Segue o método ajustado:
@classmethod
def listar_restaurantes(cls):
print(f"{'Nome do Restaurante'.ljust(20)} | {'Categoria'.ljust(10)} | {'Avaliação'.ljust(10)} | {'Ativo'}")
for restaurante in cls.restaurantes:
print(f"{restaurante.nome.ljust(20)} | {restaurante.categoria.ljust(10)} | {str(restaurante.media_avaliacoes).ljust(10)} | {restaurante.ativo}")
Espero que agora o seu código funcione sem mais problemas!
Boa Tarde Armano !
Deu certo rodar o restaurante.py mas quando vou rodar o app.py ele mostra o erro : ModuleNotFoundError: No module named 'avaliacao' Ajustei a importação mas mesmo assim não funcionou.
Boa tarde, creio que isso se resolveria usando
from modelos.avaliacao import Avaliacao
no restaurante.py, aqui funcionou e no terminal retornou isso:
Bom dia pessoal!
O Gabriel está correto! Antes eu tinha me equivocado e colocada a importação from modelos.restaurante import Restaurante
, mas é como Gabriel mostrou, deveria ser a importação from modelos.avaliacao import Avaliacao
.
Confirma se deu tudo certo para você Julia!
Boa Tarde,
Quando coloco from modelos.avaliacao import Avaliacao, o erro permanece em restaurante.py, mas o programa roda corretamente. No entanto, esse erro não deveria aparecer em restaurante.py, correto?
Se eu deixar apenas from avaliacao import Avaliacao (tirando o modelo.avaliacao) o restaurante.py roda sem erro mas o app.py segue dando erro:
Como faço?
Julia alterei uma coisa no código e imagino que agora deva funcionar, adicionei um arquivo chamado init.py dentro da pasta modelos, assim:
Dessa forma, o Python passa a tratar essa pasta modelos como um pacote, e inclusive dentro do init.py não tem nada, porém ainda assim pelo que eu pesquisei ela é essencial para essa função. Com relação aos imports, no restaurante.py eu mantive o
from .avaliacao import Avaliacao
Porem utilizando from modelos.avaliacao import Avaliacao
também funciona
No app.py eu mantive o
from modelos.restaurante import Restaurante
E foi basicamente isso, o codigo funcionou normal aqui
Bom dia Gabriel, Tudo bem?
Fiz do jeito que você falou mas o erro continua:
O app.py roda de forma correta mas o erro continua em restaurante.py mesmo com a criação do arquivo init.py.
Bom dia, Julia!
O arquivo restaurante.py
é um arquivo de classe, então não é necessário executar ele separadamente já que ele é apenas um modelo para criar um objeto.
O fato de ele estar gerando erro quando você executa ele não significa que há algo de errado nele, é apenas a importação que busca uma pasta modelos que esteja no lado do arquivo restaurante.py
, mas como não existe causa o erro. E como essa importação é feita para não haver problemas ao chamar a classe Restaurante
no arquivo app.py
não tem nenhum problema deixar da forma em que está.
Resumindo, o erro no restaurante.py
não afeta o projeto, já que o projeto está centralizado em app.py
e esse erro não ocorre nele.
Ola Armano,
Obrigada por toda a Ajuda!