10
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?

10 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.

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.