1
resposta

[Bug] Com o mesmo codigo da aula esta dando erro, "ModuleNotFoundError".

from modelos.avaliacao import Avaliacao

class Restaurante:
    restaurantes = []

    def __init__(self, nome, categoria):
        self._nome = nome.title()
        self._categoria = categoria.upper()
        self._ativo = False
        self._avaliacao = []
        Restaurante.restaurantes.append(self)
    
    def __str__(self):
        return f'{self._nome} | {self._categoria}'
    
    @classmethod
    def listar_restaurantes(cls):
        print(f'{"Nome do restaurante".ljust(25)} | {"Categoria".ljust(25)} | {"Avaliação".ljust(25)} |{"Status"}')
        for restaurante in cls.restaurantes:
            print(f'{restaurante._nome.ljust(25)} | {restaurante._categoria.ljust(25)} | {str(restaurante.media_avaliacoes).ljust(25)} |{restaurante.ativo}')

    @property
    def ativo(self):
        return '⌧' if self._ativo else '☐'
    
    def alternar_estado(self):
        self._ativo = not self._ativo

    def receber_avaliacao(self, cliente, nota):
        avaliacao = Avaliacao(cliente, nota)
        self._avaliacao.append(avaliacao)

    @property
    def media_avaliacoes(self):
        if not self._avaliacao:
            return 0
        soma_das_notas = sum(avaliacao._nota for avaliacao in self._avaliacao)
        quantidade_de_notas = len(self._avaliacao)
        media = round(soma_das_notas / quantidade_de_notas, 1)
        return media
1 resposta

O erro ModuleNotFoundError ocorre quando o interpretador Python não consegue encontrar o módulo que você está tentando importar. No seu caso, você está tentando importar a classe Avaliacao do módulo modelos.avaliacao.

Certifique-se de que a estrutura do seu projeto e a organização dos arquivos estão corretas. O erro geralmente ocorre quando o interpretador não consegue localizar o arquivo ou a pasta que contém o módulo que você está tentando importar.

Considere as seguintes verificações:

  1. Caminho do Módulo: Certifique-se de que o caminho para o módulo avaliacao está correto em relação ao arquivo que contém a classe Restaurante. Se a estrutura do seu projeto é algo como:
projeto/
├── modelos/
│   └── avaliacao.py
└── main.py

Então, dentro do arquivo main.py, você importaria a classe Avaliacao da seguinte forma:

from modelos.avaliacao import Avaliacao

2)Verificação do Path do Python: Certifique-se de que o diretório do seu projeto está no sys.path. Isso é necessário para que o interpretador Python consiga localizar os módulos corretamente. Você pode adicionar o diretório do projeto ao sys.path no início do seu script:

import sys
sys.path.append("/caminho/para/o/diretorio/do/projeto")

Substitua "/caminho/para/o/diretorio/do/projeto" pelo caminho real para o diretório onde está o arquivo main.py.

Se você ainda estiver enfrentando problemas, revise a estrutura do seu projeto e a organização dos arquivos para garantir que a hierarquia de pastas e arquivos esteja correta. Certifique-se também de que todos os arquivos necessários estão presentes e que você está executando o script a partir do diretório correto.

Se essa solução te ajudar lembre de marcar como resolução