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!

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.