ImportError:无法从“flask.json”导入名称“JSONEncoder”

And*_*iță 6 python mongodb flask python-venv

我正在学习 Flask 的全栈课程。我的init .py 看起来像:

from flask import Flask
from config import Config
from flask_mongoengine import MongoEngine

app = Flask(__name__)
app.config.from_object(Config)

db = MongoEngine()
db.init_app(app)

from application import routes
Run Code Online (Sandbox Code Playgroud)

但是,在导入时from flask_mongoengine import MongoEngine,我收到 ImportError:

ImportError: cannot import name 'JSONEncoder' from 'flask.json' 
Run Code Online (Sandbox Code Playgroud)

我的 venv 看起来像:

blinker==1.6.2
click==8.1.3
colorama==0.4.6
dnspython==2.3.0
email-validator==2.0.0.post2
Flask==2.3.2
flask-mongoengine==1.0.0
Flask-WTF==1.1.1
idna==3.4
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
mongoengine==0.27.0
pymongo==4.4.0
python-dotenv==1.0.0
Werkzeug==2.3.6
WTForms==3.0.1
Run Code Online (Sandbox Code Playgroud)

我可以在这里做些什么来避免这种冲突吗?谢谢!

srn*_*srn 3

flask_mongoengine 目前似乎没有维护,并且不适用于当前的 Flask 版本。如果你绝对必须使用它,你需要降级你的 Flask 版本,这可能(并且很可能)会给你带来其他麻烦。

github 上有一个关于您的错误消息的问题: https://github.com/MongoEngine/flask-mongoengine/issues/522

Flask 2.2.0 于 08/2022 发布了弃用警告: Flask 更改

简要查看该存储库后,维护者似乎已经在上面了:https://github.com/MongoEngine/flask-mongoengine/blob/master/flask_mongoengine/json.py