Flask:无法初始化 Marshmallow

Flask: Cant initialize Marshmallow

我使用 Flask、SqlAlchemy 和 Marshmallow 构建了一个 REST API Python。

我使用了 pipenv install flask flask-sqlalchemy flask-marshmallow 和 marshmallow-sqlalchemy,一切正常。

这是我的依赖版本:

click==7.1.2
Flask==1.1.2
flask-marshmallow==0.12.0
Flask-SQLAlchemy==2.4.3
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
marshmallow==2.21.0
marshmallow-sqlalchemy==0.19.0
six==1.15.0
SQLAlchemy==1.3.17
Werkzeug==1.0.1

现在我运行将这段代码运行一个没有任何方法的基本服务器

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
import os

# Init app
app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
# Database
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'db.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# Init db
db = SQLAlchemy(app)
# Init ma
ma = Marshmallow(app) # This is where the error appears

# Run Server
if __name__ == '__main__':
    app.run(debug=True)

当我 运行 此代码时,我得到以下异常:

 File "/Users/pro/PycharmProjects/EventPlannerAPI/app.py", line 15, in <module>
    ma = Marshmallow(app)
  File "/Users/pro/.local/share/virtualenvs/EventPlannerAPI-OoqXq5gv/lib/python3.7/site-packages/flask_marshmallow/__init__.py", line 104, in __init__
    self.init_app(app)
  File "/Users/pro/.local/share/virtualenvs/EventPlannerAPI-OoqXq5gv/lib/python3.7/site-packages/flask_marshmallow/__init__.py", line 116, in init_app
    self.SQLAlchemySchema.OPTIONS_CLASS.session = db.session
AttributeError: 'NoneType' object has no attribute 'OPTIONS_CLASS'

由于我正在学习(1-2 岁)教程,我不知道为什么它不起作用,特别是因为在类似的项目中一切正常。

这是不同版本之间的兼容性问题。应该会尽快修复。

我遇到了同样的问题。我使用的是 python 2.7 虚拟环境,当我安装 marshmallow-sqlalchemy 时,它默认安装版本 0.19.0。在修复过程中,我将其更改为 Python 3 ,然后将版本更改为 0.23.0 依赖。现在它工作正常。 0.19.0 版本导致了问题。但我不确定是否还需要 python 版本更改。