我正在学习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
然而,当导入from flask_mongoengine import MongoEngine
时,我得到了一个ImportError:
ImportError: cannot import name 'JSONEncoder' from 'flask.json'
我的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
我能做些什么来避免这种冲突吗?谢谢!
1条答案
按热度按时间mgdq6dx11#
flask_mongoengine似乎目前没有维护,并且不适用于当前的Flask版本。如果你一定要使用它,你需要降级你的Flask版本,这可能会(很可能会)给你带来其他麻烦。
在github上有一个关于你的错误消息的问题:https://github.com/MongoEngine/flask-mongoengine/issues/522
Flask 2.2.0在08/2022中出现了弃用警告:培养瓶变更
在简单地看了一下repo之后,似乎维护者已经在上面了:https://github.com/MongoEngine/flask-mongoengine/blob/master/flask_mongoengine/json.py