14
respostas

Importação na Avaliação

Prezados,

Quando vou rodar o código como apresentado na aula, aparece o seguinte erro ** No module named 'Aula_04_02_OO_Avaliacao_app'**

Segue o print da estrutura da organização das pastas:

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

Eu tentei incluir também no from| import o caminho da avaliação com o script:

from Phyton.Python_Orientacao_Objeto.Aula_04_02_OO_Avaliacao_app import Avaliacao

mas o erro permanece o mesmo. No aguardo.

14 respostas

Olá Larissa.

Tudo bem?

O erro que você está encontrando, "No module named 'Aula_04_02_OO_Avaliacao_app'", indica que o Python não está conseguindo localizar o módulo que você está tentando importar. Isso pode ser causado por alguns motivos, como um erro no caminho do módulo ou a estrutura de diretórios não estar configurada corretamente.

Verificando seu código no print, notei que há um erro de digitação em "Phyton" (deveria ser "Python"). Corrija isso e tente novamente:

from Python.Python_Orientacao_Objeto.Aula_04_02_OO_Avaliacao_app import Avaliacao

Espero ter ajudado e bons estudos!

Sim, existe um erro de digitação mas o caminho é esse conforme descrito anteriormente. Segue o print novamente: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá Larissa.

Verdade, agora que reparei que a palavra "phython" está com "h" mas está igual no nome da pasta. De fato continua sem encontrar o módulo

De acordo com estrutura de pastas que você mostrou, você pode tentar importar o módulo Avaliacao da seguinte forma:

from Aula_04_02_OO_Avaliacao_app import Avaliacao
  • Outro ponto é tentar usar caminhos relativos: Se o seu arquivo Aula_04_02_OO_app.py está no mesmo diretório que Aula_04_02_OO_Avaliacao_app.py, você pode tentar usar um caminho relativo:

    from .Aula_04_02_OO_Avaliacao_app import Avaliacao
    
  • Verifique o Caminho de Execução: Certifique-se de que você está executando o script a partir do diretório correto. O diretório de onde você executa o script pode afetar a forma como os módulos são encontrados. Tente executar o script a partir do diretório raiz do seu projeto.

Qualquer coisa manda aqui de novo.

Os erros persistem. Coloquei nas duas opções, conforme os prints, além disso eu coloquei o arquivo Aula_04_OO_Avaliacao_app dentro da pasta Phyton, pra ver se funcionava, mas também nada.

Segue:

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

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

Acho que agora entendi.

Você precisa acessar a pasta onde contém o seu arquivo app.py.

Primeiro, importa a Avaliacao igual você fez com o Restaurante, deixa igual:

Print do código pythin no VSCode destacando os importes de Avaliacao e restauranteAlgo como:

from Python_Orientacao_objeto.Aula_04_02_oo_avaliacao_app import Avaliacao

Você tem que acessar a pasta raiz que contém o app.py, ou seja a partir da pasta Phyton.

Em vez da pasta Alura, acessa a pasta Phyton para rodar o projeto:

Print do VSCode destacando a barra lateral esquerda das pastas do projeto

SInsira aqui a descrição dessa imagem para ajudar na acessibilidade O erro permance colocando o mesmo caminho do Restaurante.

Tenta o seguinte: Deixa o import como está, igual de Restaurante. Fecha o programa e tenta abrir novamente porém direto na pasta "Phyton", então tenta rodar o projeto. Se não funcionar, tenta abrir o programa na pasta "Python_orientacao_Objeto" e rodar o projeto. Se isso não funcionar, vai ser útil compartilhar o código desse arquivo "Aula_04_02_OO_Avaliacao_app.py" aqui com a gente.

Renan, conforme conversado eu já testei dessas formas e não funcionou. Segue novamente os prints:!

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

Precisava de uma solução conforme proceder nesses erros, pois estou não consigo avançar a atividade por conta desse erro.

Te mandei também o print do arquivo de avaliação.

Segue o código também escrito por aqui:

class Avaliacao:

    def __init__(self, cliente = '', nota = 0):
        self._cliente = cliente
        self._nota = nota

Aparentemente o arquivo "Avaliacao" está correto. Faz o seguinte, tenta compartilhar o seu projeto completo comigo, seja colocando ele no GitHub, ou em uma pasta do Drive. Assim com ele completo consigo testar e elaborar uma reposta mais assertiva. Pode ser?

Ai sim Larissa muito obrigado por compartilhar o projeto completo.

Parece que o problema é que o Python não está conseguindo encontrar o módulo Aula_04_02_OO_Avaliacao_app mesmo. Consegui resolver isso adicionando o caminho correto ao sys.path.

Aqui está um exemplo de como fazer isso, seu arquivo Aula_04_OO_app.py ajustado fica:

  1. Certifique-se de que o caminho correto está sendo adicionado ao sys.path:

    import sys
    import os
    
    # Adicione o diretório 'Python_Orientacao_Objeto' ao sys.path
    sys.path.append(os.path.join(os.path.dirname(__file__), 'Python_Orientacao_Objeto'))
    
    from Aula_04_02_OO_Avaliacao_app import Avaliacao
    from Aula_04_01_OO_Restaurante_app import Restaurante
    
    restaurante_praca = Restaurante('praça', 'Gourmet')
    restaurante_praca.receber_avaliacao('Gui', 10)
    restaurante_praca.receber_avaliacao('Lais', 8)
    restaurante_praca.receber_avaliacao('Emy', 5)
    
    def main():
        Restaurante.listar_restaurantes()
    
    if __name__ == '__main__':
        main()
    
  2. Certifique-se de que a estrutura do diretório está correta:

Allura/
└──Phyton/
       ├── logica-js-projeto_inicial/
       ├── Phyton Basic/
       ├── Python_Orientacao_Objeto/
       │   ├── Aula_04_01_OO_Restaurante_app.py
       │   └── Aula_04_02_OO_Avaliacao_app.py
       └── Aula_04_OO_app.py

Depois de fazer essas alterações, execute novamente o script a partir do diretório Phyton:

python .\Phyton\Aula_04_OO_app.py

Veja funcionando no print:

Print do VSCode com a estrutura de pastas do projeto aberto focando no arquivo Aula_04_OO_app.pyAcho que agora vai. Qualquer coisa pode mandar aqui de novo.

Perfeito! Então, em casos onde o o programa não encontra o caminho a gente utiliza o sys.path junto com o restante da programação?

Quando eu rodei o código ele funcinou mas ao mesmo tempo mostra como se ele não reconhecesse o caminho. Porque? Insira aqui a descrição dessa imagem para ajudar na acessibilidadeobg e no aguardo.

Olá,

Isso! O sys.path ajuda e encontrar os módulos através da importação. Sobre essa marcação(sublinhado) nos imports, coloca o mouse em cima e veja que mensagem aparece. Pode ser algum aviso, mas nada que venha afetar o funcionamento do código, já que ele rodou certinho. No meu caso ficou normal, não ficou sublinhada a linha do import igual no seu print.

Espero ter ajudado Larissa. Bons estudos.