18

我正在关注@Miguel flask mega 教程,这很棒。在第 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
4

7 回答 7

21

API 已更改为:

from flask.ext.wtf import Form

至:

from flask_wtf import Form

在此处查看文档

于 2016-04-20T03:54:14.403 回答
14

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

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

导入样式从 0.9.0 版本开始发生变化。请务必更新您的导入:

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

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

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

于 2013-11-17T16:50:35.467 回答
7

我有同样的问题。我再次阅读步骤 1以检查我滑倒的地方。

请记住为您的项目安装必要的模块。

在这种情况下,如下:

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

由于您已经创建了这个虚拟环境“flask”,因此安装的所有模块仅在您的虚拟环境(flask)中可用。

记住运行“flask/Scripts/python run.py”而不是“python run.py”

于 2014-03-20T07:11:30.587 回答
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,它应该可以解决您的问题。

于 2013-11-17T20:00:27.387 回答
1

即使更改了不同的导入样式并重新安装了flask,flask-wtf,如果仍然无法正常工作:那么在config.py中(“config.py可能具有不同的名称,例如app_config.py等)

插入行

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

设置你自己的应用程序的库路径,在我的例子中是“venv/Lib/site-packages”

于 2015-08-29T06:10:52.627 回答
0

做这个: 。烧瓶/bin/激活

然后它会正常工作。

干杯。

于 2016-09-03T17:51:46.887 回答
-1

可以运行命令:pip install -U Flask-WTF ,改成 from flask.ext.wtf import Form from wtforms import TextField, BooleanField from wtforms.validators import required

于 2016-01-25T08:14:13.313 回答