Estou recebendo esta mensagem de erro ao rodar o código
ImportError: cannot import name 'Flask'
Eu uso o VS Code rodando num ambiente Anaconda
Tenho certeza que o Flask está instalado, a partir do prompt do Anaconda
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!
Estou recebendo esta mensagem de erro ao rodar o código
ImportError: cannot import name 'Flask'
Eu uso o VS Code rodando num ambiente Anaconda
Tenho certeza que o Flask está instalado, a partir do prompt do Anaconda
Olá Marcelo, tudo certo?
Por algum acaso você salvou o código com o nome flask?
Olá Diego. Não é o caso. Nomeei o arquivo como jogoteca.py, assim como o professor fez no curso
Olá Marcelo,
Normalmente esse erro é causado por algum arquivo ou pasta com o nome flask interferindo no import como o Diego sugeriu. Então verifica nos outros arquivos e pastas do projeto se isso não acontece.
Além disso você está executando o projeto a partir do Anaconda Prompt? Compartilha também o seu código do arquivo onde está acontecendo o erro.
oi Lucas, tudo bem?
Realmente o código estava numa pasta chamada flask
Eu renomeei a pasta e o problema persiste.
segue o código completo (como disse feito a partir da aula do Luan)
from flask import Flask, render_template, request, redirect, session, flash
app = Flask(__name__)
app.secret_key = ''
class Jogo:
def __init__(self, nome, categoria, console):
self.nome = nome
self.categoria = categoria
self.console = console
jogo1 = Jogo('Super Mario', 'Ação', 'SNES')
jogo2 = Jogo('Pokemon Gold', 'RPG', 'GBA')
lista = [jogo1, jogo2]
@app.route('/')
def index():
return render_template('lista.html', titulo='Jogos', jogos=lista)
@app.route('/novo')
def novo():
return render_template('novo.html', titulo='Novo Jogo')
@app.route('/criar', methods=['POST',])
def criar():
nome = request. form['nome']
categoria = request. form['categoria']
console = request. form['console']
jogo = Jogo(nome, categoria, console)
lista.append(jogo)
return redirect('/')
@app.route('/login')
def login():
return render_template('login.html')
@app.route('/autenticar', methods=['POST',])
def autenticar():
if 'mestra' == request.form['senha']:
session['usuario_logado'] = request.form['usuario']
flash(request.form['usuario'] + ' logou com sucesso')
return redirect('/')
else:
flash('Não logado, tente novamente!')
return redirect('/login')
app.run(debug=True)
Realmente está tudo correto com o seu código, o problema parece ser do ambiente, então só com vários testes para descobrir a causa.
Diz por favor mais um pouco sobre o seu ambiente. Como você está executando o projeto? é através do Anaconda Prompt, é no terminal dentro do vscode? Você está no windows?
Executei diretamente no VSCode.
Tente então executar manualmente pelo Anaconda Prompt, que é o ambiente onde o Flask está instalado:

Após abrir o Anaconda Prompt, navega até a pasta do projeto e executa python jogoteca.py
Diz qual o resultado disso.
Lucas,
O problema persistiu ao executar direto do prompt
Consegui resolver criando um novo ambiente virtual do Anaconda e reinstalando o flask por lá.
Abraço!
Ah, bom saber que deu certo!
Realmente estranho o erro, esse tipo de erro normalmente acontece por um arquivo ou pasta interferindo, mas como você viu que não era isso talvez o motivo seja um problema ocorrido durante a instalação.
Criar um novo ambiente virtual é bom porque reinstala tudo novamente "isolado" da configuração e instalação padrão que está com problema, talvez no futuro seja bom testar se reinstalando o flask ou até todo o ambiente Anaconda resolve o problema.
Obrigado por compartilhar a solução! Vou marcar sua resposta como a solução do tópico para encerrar, qualquer coisa é só iniciar um novo tópico ou falar aqui mesmo.