Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aplicação só roda no terminal

Instalado o Flask na versão da aula e tudo certo, ao rodar o código na IDE:

from flask import Flask

app = Flask(__name__)

app.run()

A resposta obtida é:

RuntimeError: No root path can be found for the provided module "builtins".  This can happen because the module came from an import hook that does not provide file name information or because it's a namespace package.  In this case the root path needs to be explicitly provided.

Entretanto, notei que rodando o mesmo código no terminal o resultado é o esperado e divulgado na aula.

Por que o código roda normalmente no terminal mas na IDE não?

2 respostas
solução!

Olá Thiago, tudo bem?

Isso acontece por causa da forma que o Python invoca seus arquivos, os chamados módulos.

Quando executamos um arquivo diretamente, por exemplo, python app.py. A variável __name__ daquele arquivo, obtém o valor __main__, indicando que é o módulo principal. Por padrão, o Flask só roda, app.run() estando nesse módulo.

Talvez, pela IDE, o Python não esteja executando esse módulo diretamente, por isso, vem dando esse erro. Uma forma de conferir isso é colocar a validação if __name__ == '__main__' e executar diretamente o arquivo:

from flask import Flask

app = Flask(__name__)

if __name__ == '__main__':
    app.run()

Oi, Yuri. Também pensei que poderia ter sido isso mas ao colocar essa validação nada mudou.

Na verdade eu consegui resolver o problema ontem mas tentei tanta coisa diferente que nem sei exatamente qual foi a que resolveu o problema rs

Mas lembro de ter tentado essa validação já e não ter resolvido.

Bem, o que importa é que consegui terminar o curso usando a IDE rs Mas valeu aí a dica. Vai que ajuda outras pessoas. Pelo que vi googlando é um problema relativamente comum.