没有名为flask.ext.wtf的模块

liv*_*v a 16 python flask flask-wtforms

我正在关注@Miguel flask mega tutorial,这很棒.在第3章他讨论了web表单和flaskWTF扩展,安装这样的扩展sudo pip install Flask-WTF导致了

成功安装Flask-WTF Flask WTForms Werkzeug Jinja2 itsdangerous markupsafe

但在执行时./run.py我得到一个错误:

没有名为flask.ext.wtf`的模块

我已经谷歌错误并试图像这样运行它:flask/bin/python run.py但得到了相同的错误,也尝试过flask/bin/activate

更新:如果你遇到同样的错误这就解决了我的问题我安装了以下内容,肯定不是全部都需要但是因为我没有逐一去找出哪一个做了诀窍我列出他们所有人

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
Run Code Online (Sandbox Code Playgroud)

Pav*_*kov 16

API已从以下更改:

from flask.ext.wtf import Form
Run Code Online (Sandbox Code Playgroud)

至:

from flask_wtf import Form
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档


jbu*_*bub 14

您可能正在使用旧版本的导入样式:

from flask.ext.wtf import Form, TextField, BooleanField
from flask.ext.wtf import Required
Run Code Online (Sandbox Code Playgroud)

导入样式从0.9.0版本开始更改.请务必更新您的导入:

from flask.ext.wtf import Form
from wtforms.fields import TextField, BooleanField
from wtforms.validators import Required
Run Code Online (Sandbox Code Playgroud)

您可以在docs的升级部分找到有关此更改的说明:

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

  • 对于在2016年寻找答案的任何人,您需要安装'pip install Flask-WTF',然后从'从flask.ext.wtf导入表单'更改为'从flask_wft导入表单' (7认同)

oll*_*leh 7

I had the same problem. I read steps 1 again to check where I slipped.

Remember to install the necessary modules for your project.

In this case the following:

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
Run Code Online (Sandbox Code Playgroud)

Since you've created this virtual environment, "flask", all the modules installed are available only in your virtual environment(flask).

Remember to run "flask/Scripts/python run.py" and not "python run.py"


Doo*_*beh 5

jbub是对的,但正在解决你将遇到的问题,而不是你当前遇到的问题 - 教程已过时,并没有提到用户应该使用的库的版本,所以如果你这样做教程说你将遇到问题,除非你改变你的导入行以匹配jbub所说的.

但是 - 你目前遇到的问题不是那个 - 如果是的话,你的错误就是No module named flask.ext.wtf.Textfield现在根本看不到图书馆.

这意味着你没有将Flask-WTF库安装到正确的位置,在这种情况下,它看起来应该安装在你似乎在一个名为的目录下创建的虚拟环境中flask,以使事情更加清晰,我将把那个目录称为venv.

虚拟环境是一个小空间,你需要进入它,然后把东西放在架子上(安装你的库).因此,首先需要激活虚拟环境,然后启动终端并导航到您创建的虚拟环境(venv目录),然后激活它(走进房间):

source bin/activate

您的控制台提示符将更改为显示您已为此终端激活它 - 现在您的终端站在房间内,因此您可以根据需要安装库,您甚至不再需要sudo,因为您的小房间是安全的为了让你的用户玩,它不会影响它门外的世界.所以让我们安装flask-wtf(以及通过询问pip可能需要的任何其他库):

pip install flask-wtf 等等

现在,因为你处于虚拟环境中,它将启动那里存在的python版本并查看你设置的所有库,这就是你想要的.因此,当终端提示显示您的虚拟环境仍处于活动状态时,您可以run.py通过运行启动文件python run.py,它应该可以解决您的问题.