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
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.