我正在关注@Miguel flask mega tutorial,这很棒。在第3章中,他讨论了Web表单和flaskWTF扩展,安装了像sudo pip install Flask-WTF
这样的扩展导致
成功安装Flask-WTF Flask WTForms Werkzeug Jinja2其危险标记安全
但在执行./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
答案 0 :(得分: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
您可以在docs的升级部分找到有关此更改的说明:
https://flask-wtf.readthedocs.org/en/latest/upgrade.html#version-0-9-0
答案 1 :(得分:13)
答案 2 :(得分:7)
我遇到了同样的问题。我再次阅读steps 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 / Scripts / python run.py"而不是" python run.py"
答案 3 :(得分:5)
jbub是对的,但正在解决你将遇到的问题,而不是你当前遇到的问题 - 教程已过时,并没有提到用户应该使用的库版本,所以如果你按照教程说你会遇到问题,除非你改变你的导入行以匹配jbub所说的。
但是 - 你目前遇到的问题不是那个 - 如果是的话,那么你的错误就是No module named flask.ext.wtf.Textfield
,而它根本看不到图书馆。
这意味着您尚未将Flask-WTF库安装到正确的位置,在这种情况下,它看起来应该安装在虚拟环境中,您似乎在名为{{1}的目录下创建了该环境为了让事情更清楚一点,我将把这个目录称为flask
。
虚拟环境是一个小空间,你需要进入它,然后把东西放在架子上(安装你的库)。
因此,首先需要激活您的虚拟环境,因此启动终端并导航到您创建的虚拟环境(venv
目录),然后激活它(走进房间):
venv
您的控制台提示符将更改为显示您已为此终端激活它 - 现在您的终端站在房间内,因此您可以根据需要安装库,甚至不需要source bin/activate
任何更重要的是,因为您的小房间对您的用户来说是安全的,所以它不会影响它门外的世界。因此,让我们安装flask-wtf(以及通过询问pip可能需要的任何其他库):
sudo
等。
现在,因为你处于虚拟环境中,它将启动那里存在的python版本并查看你设置的所有库,这就是你想要的。因此,当终端提示显示您的虚拟环境仍处于活动状态时,您可以通过运行pip install flask-wtf
启动run.py
文件,它可以解决您的问题。
答案 4 :(得分: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'))
设置你自己的应用程序的lib路径,在我的情况下它是" venv / Lib / site-packages"
答案 5 :(得分:0)
这样做:。烧瓶/ bin中/激活
然后它会正常工作。
干杯。
答案 6 :(得分:-1)
你可以运行命令:pip install -U Flask-WTF,并改为 来自于flask.ext.wtf导入表格 来自wtforms导入TextField,BooleanField 来自wtforms.validators import必需