ModuleNotFoundError:没有名为“wtforms.fields.html5”的模块

Aug*_*ger 16 python flask wtforms flask-wtforms

我有一个使用 wtforms 的 Flask 应用程序。

我有一个文件,它的作用是:

from wtforms.fields.html5 import DateField, EmailField, TelField

# rest of the file
Run Code Online (Sandbox Code Playgroud)

我只是想重建我的 docker 容器,现在出现此错误:

ModuleNotFoundError: No module named 'wtforms.fields.html5'
Run Code Online (Sandbox Code Playgroud)

我的requirements.txt

flask
flask-login
flask_sqlalchemy
Flask-Mail
pyodbc
requests
waitress
wtforms
Run Code Online (Sandbox Code Playgroud)

我尝试添加flask_WTF但没有修复它。

知道发生了什么事吗?我想过升级 wtforms 但似乎我拥有最新版本:

pip install wtforms
Requirement already satisfied: wtforms in /usr/local/lib/python3.9/site-packages (3.0.0)
Requirement already satisfied: MarkupSafe in /usr/local/lib/python3.9/site-packages (from wtforms) (2.0.1)
Run Code Online (Sandbox Code Playgroud)

pan*_*yte 28

对于 WTForms >= 3.0.0,只需使用wtforms.fields导入这些类,因为该html5模块似乎已在 3.0.0a1 中退役。所以在你的情况下:

from wtforms.fields import DateField, EmailField, TelField
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅有关字段的 WTForms 文档(例如EmailField)。


Ale*_*x F 8

降级WTForms==2.3.3为我解决了这个问题。此处引用的线程。