Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Problema na Execução do Programa

Bom dia, Tudo bem?

Na hora de executar esta aparecendo o seguinte erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Esse é o meu código: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Revi a aula e não encontrei nenhum erro. Poderia me ajudar?

11 respostas

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.

Fico no aguardo e à disposição

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.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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.

  1. 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
    
  2. 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.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Boa tarde, creio que isso se resolveria usando

from modelos.avaliacao import Avaliacao

no restaurante.py, aqui funcionou e no terminal retornou isso: print do terminal

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?

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

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:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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: Foto dos arquivos dentro da pasta modelos

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: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O app.py roda de forma correta mas o erro continua em restaurante.py mesmo com a criação do arquivo init.py.

solução!

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!