No módulo chamado flask.ext.wtf

votos
13

Eu estou seguindo @Miguel garrafa de mega tutorial que é ótimo. No capítulo 3, ele fala sobre formulários web e extensão flaskWTF, instalar a extensão como este sudo pip install Flask-WTFresultou em

instalado com sucesso Flask-WTF Flask WTForms Werkzeug Jinja2 markupsafe itsdangerous

mas quando execução ./run.pyeu recebo um erro:

Nenhum módulo chamado flask.ext.wtf`

Eu tenho google o erro e tentou executá-lo assim: flask/bin/python run.pymas tenho o mesmo erro, também tentouflask/bin/activate

Update: se você tiver o mesmo erro é isso que resolveu o problema para mim eu tenho instalado o seguinte, com certeza eles não são todos necessários, mas desde que eu não fui um por um para descobrir qual deles fez o truque i estou listando-os todos

flask/bin/pip install flask-login
flask/bin/pip install flask-openid
flask/bin/pip install flask-mail
flask/bin/pip install sqlalchemy
flask/bin/pip install flask-sqlalchemy
flask/bin/pip install sqlalchemy-migrate
flask/bin/pip install flask-whooshalchemy==0.55a
flask/bin/pip install flask-wtf
flask/bin/pip install pytz
flask/bin/pip install flask-babel
flask/bin/pip install flup
Publicado 17/11/2013 em 17:06
fonte usuário
Em outras línguas...                            


7 respostas

votos
14

Você provavelmente está usando o estilo de importação a partir de versões mais antigas:

from flask.ext.wtf import Form, TextField, BooleanField
from flask.ext.wtf import Required

O estilo de importação mudou a partir 0.9.0 versão. Certifique-se de atualizar suas importações:

from flask.ext.wtf import Form
from wtforms.fields import TextField, BooleanField
from wtforms.validators import Required

Você pode encontrar a nota sobre esta mudança na seção de atualização de documentos:

https://flask-wtf.readthedocs.org/en/latest/upgrade.html#version-0-9-0

Respondeu 17/11/2013 em 17:50
fonte usuário

votos
8

Com Python 3, o que funcionou para mim foi mudando a partir de:

from flask.ext.wtf import Form

para

from flask_wtf import Form
Respondeu 20/04/2016 em 03:54
fonte usuário

votos
6

Eu tive o mesmo problema. Eu li os passos 1 novamente para verificar onde eu escorreguei.

Lembre-se de instalar os módulos necessários para o seu projeto.

Neste caso, o seguinte:

flask/bin/pip install flask-login
flask/bin/pip install flask-openid
flask/bin/pip install flask-mail
flask/bin/pip install sqlalchemy
flask/bin/pip install flask-sqlalchemy
flask/bin/pip install sqlalchemy-migrate
flask/bin/pip install flask-whooshalchemy==0.55a
flask/bin/pip install flask-wtf
flask/bin/pip install pytz
flask/bin/pip install flask-babel
flask/bin/pip install flup

Desde que você criou esse ambiente virtual, "frasco", todos os módulos instalados estão disponíveis apenas em seu ambiente virtual (frasco).

Lembre-se de executar "garrafa / Scripts / run.py python" e não "run.py python"

Respondeu 20/03/2014 em 08:11
fonte usuário

votos
5

direito de jbub, mas é abordar um problema que você vai correr para, em vez do problema que está atualmente having-- o tutorial é datada, e não menciona o versões da biblioteca, o usuário deve estar usando, por isso, se você faz como o tutorial diz que você vai ter problemas a menos que mude suas linhas de importação para corresponder ao que jbub diz.

Mas-- o problema que você está tendo atualmente não é isso-- se fosse, o erro seria No module named flask.ext.wtf.Textfieldno momento em que não pode ver a biblioteca em tudo.

Isso significa que você não instalou a biblioteca Flask-WTF para o local correto, neste caso, parece que ele deve ser instalado em seu ambiente virtual, que você parece ter criado sob um diretório chamado flask, para tornar as coisas um pouco mais claras , eu estou indo para se referir a esse diretório como venv.

O ambiente virtual é um pouco quarto, você precisa dar um passo para ele, em seguida, colocar as coisas na prateleira (instalar suas bibliotecas). Então, primeiro você precisa para ativar seu ambiente virtual, de modo lançar um terminal e navegue para o ambiente virtual criado (a venvdir), e, em seguida, ativá-lo (entrar na sala):

source bin/activate

O seu prompt do console mudará para mostrar que você ativou para este terminal-- agora o seu terminal está de pé na sala, assim você pode instalar as bibliotecas conforme necessário, você não precisa mesmo de sudomais, porque o seu quarto pouco é seguro para o seu utilizador para jogar, ele não afeta o mundo do lado de fora da porta. Então, vamos instalar balão de wtf (e quaisquer outras bibliotecas que você pode precisar, pedindo PIP):

pip install flask-wtf etc.

Agora, porque você está no ambiente virutal, que vai lançar a versão do python que existe lá e veja todas as bibliotecas que você definiu-se, que é o que você quer. Assim, enquanto o prompt de terminal mostra seu ambiente virtual ainda está ativo, você pode lançar seu run.pyarquivo executando python run.pye deve resolver o seu problema.

Respondeu 17/11/2013 em 21:00
fonte usuário

votos
1

Mesmo depois de alterar diferentes estilos de importação e frasco de re-instalar, balão de wtf, se ele ainda não funciona: depois no config.py ( "config.py pode ser de nome diferente, por exemplo app_config.py etc)

inserir a linha

sys.path.insert(0, os.path.join(os.path.dirname(__file__), 
'venv/Lib/site-packages'))

definir o caminho lib de seu próprio aplicativo, no meu caso era "venv / lib / site-packages"

Respondeu 29/08/2015 em 06:10
fonte usuário

votos
0

Faça isso: . balão / bin / activate

Em seguida, ele vai trabalhar corretamente.

Felicidades.

Respondeu 03/09/2016 em 17:51
fonte usuário

votos
-1

você pode executar o comando: pip instalar -U Flask-WTF, e mudar a partir do formulário de importação flask.ext.wtf de wtforms importar TextField, BooleanField de wtforms.validators importar Obrigatório

Respondeu 25/01/2016 em 08:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more