问题 运行 Flask-Appbuilder 1.3.2

Problems running Flask-Appbuilder 1.3.2

我已经正确安装了 Flask-appbuilder 包,我尝试执行 fabmanager,它显示了以下几行:

    (venv)lupo@Mint-VirtualBox ~ $ fabmanager
Traceback (most recent call last):
  File "/home/lupo/venv/bin/fabmanager", line 9, in <module>
    load_entry_point('Flask-AppBuilder==1.3.0', 'console_scripts', 'fabmanager')()
  File "/home/lupo/venv/local/lib/python2.7/site-packages/pkg_resources.py", line 353, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/lupo/venv/local/lib/python2.7/site-packages/pkg_resources.py", line 2321, in load_entry_point
    return ep.load()
  File "/home/lupo/venv/local/lib/python2.7/site-packages/pkg_resources.py", line 2048, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/home/lupo/venv/local/lib/python2.7/site-packages/flask_appbuilder/__init__.py", line 4, in <module>
    from .models.sqla import Model, Base, SQLA
  File "/home/lupo/venv/local/lib/python2.7/site-packages/flask_appbuilder/models/sqla/__init__.py", line 4, in <module>
    from sqlalchemy.ext.declarative import as_declarative
ImportError: cannot import name as_declarative

有人可以帮我吗?

an issue in Flask-AppBuilder中提到了这一点。它正在尝试做:

from sqlalchemy.ext.declarative import as_declarative

但是从 SQLAlchemy-0.9.9 开始,as_declarative 现在可以找到:

from sqlalchemy.ext.declarative.api import as_declarative

这似乎是 a regression in SQLAlchemy,没有理由移动该导入。

在 Flask-AppBuilder 或 SQLAlchemy 发布新版本之前,最简单的解决方案是将 SQLAlchemy 降级到 0.9.8:pip install sqlalchemy==0.9.8.

最新版本的 Flask-AppBuilder 已修复此问题。