我的烧瓶应用程序在升级之前可以正常工作。当忘记重置密码时,我在发送电子邮件时遇到了问题。为了尝试解决这个问题,我最近升级了我的 Flask 应用程序的一些模块。我使用当前版本升级的模块是:
我现在收到的回溯错误是:
Traceback (most recent call last):
File "C:\Users\my_folder\sales\app.py", line 1, in <module>
from product import app
File "C:\Users\my_folder\sales\product\__init__.py", line 56, in <module>
from product.agents.views import agents_bp
File "C:\Users\my_folder\sales\product\agents\views.py", line 7, in <module>
from product.agents.forms import RegistrationForm, LoginForm, UpdateAccountForm, ResetPasswordForm, RequestResetForm
File "C:\Users\my_folder\sales\product\agents\forms.py", line 1, in <module>
from flask_wtf import FlaskForm
File "C:\Users\my_folder\flask_env\lib\site-packages\flask_wtf\__init__.py", line 4, in <module>
from .recaptcha import Recaptcha
File "C:\Users\my_folder\flask_env\lib\site-packages\flask_wtf\recaptcha\__init__.py", line 1, in <module>
from .fields import RecaptchaField
File "C:\Users\my_folder\flask_env\lib\site-packages\flask_wtf\recaptcha\fields.py", line 3, in <module>
from . import widgets
File "C:\Users\my_folder\flask_env\lib\site-packages\flask_wtf\recaptcha\widgets.py", line 6, in <module>
JSONEncoder = json.JSONEncoder
AttributeError: module 'flask.json' has no attribute 'JSONEncoder'
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Sha*_*e S 12
我找到的解决方案是卸载 Flask 并安装旧版本。
pip uninstall Flask
Run Code Online (Sandbox Code Playgroud)
pip install Flask==2.2.3
Run Code Online (Sandbox Code Playgroud)
此解决方案的问题是在 POST 上仍然出现忘记重置密码的错误。希望以后有人找到新的更好的解决方案。
更新
我想推荐在此页面上找到的 Kacey Saff 的解决方案/sf/answers/5342804561/ 这是我最终转向的解决方案。
小智 12
Python 至少从 3.2 开始就有内置的 JSONEncoder,这使得 Flask 的版本变得多余。所以删除也是合理的。
如果这是您控制的模块,您可以将您的线路替换JSONEncoder = json.JSONEncoder为
from json import JSONEncoder
Run Code Online (Sandbox Code Playgroud)
由于您不控制该库,因此您应该注意哪个库试图包含它,在您的情况下是flask_wtf. 当您检查 PyPi 中的该库时,您会看到有一些最新版本,这表明您应该尝试的第一件事是在 Flask-WTF 上更新该版本。
小智 6
这些属性已从 Flask 版本 2.3.0 中删除,请参阅此发行说明:https://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-0
小智 5
错误消息中的特定行提供了线索:
from flask_wtf import FlaskForm
Run Code Online (Sandbox Code Playgroud)
将 Flask-WTF 包升级到最新版本解决了我的问题:
Flask-WTF~=1.1.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17298 次 |
| 最近记录: |