You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-admin运行WYSIWYG示例报错:ImportError: No module named ext.sqlalchemy

Flask-Admin WYSIWYG示例运行报错:ImportError: No module named ext.sqlalchemy 解决方法

这个问题我之前折腾Flask-Admin示例时也碰到过,本质原因是Flask-SQLAlchemy(以及Flask-Admin)的导入语法在新版本中已经更新,但示例代码还在使用被弃用的旧语法,导致找不到模块。

问题根源

你安装的是新版本的Flask-SQLAlchemy,而示例代码里用的是旧版的导入方式:from flask.ext.sqlalchemy import SQLAlchemy——这种flask.ext.*的导入格式在Flask 1.0+之后就被官方弃用了,新版本统一使用flask_*的包名直接导入。

两种解决方案

方案一:修改代码适配新版本(推荐)

直接更新examples/wysiwyg/app.py里的导入语句,替换成当前主流的写法:
打开app.py,找到这些导入行:

from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext import admin
from flask.ext.admin.contrib import sqla

替换为:

from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

另外注意代码里的admin = admin.Admin(app, name="Example: WYSIWYG")也要改成admin = Admin(app, name="Example: WYSIWYG")(避免变量名和模块名冲突)。

保存修改后,重新运行:

python examples/wysiwyg/app.py

这样就能正常启动应用了,而且用的是最新版本的依赖,安全性和稳定性更好。

方案二:安装兼容旧语法的旧版本依赖

如果你不想修改代码,可以指定安装支持旧flask.ext.*导入方式的依赖版本:

  1. 编辑examples/wysiwyg/requirements.txt,修改为:
Flask
Flask-Admin==1.5.6
Flask-SQLAlchemy==2.4.4
  1. 重新安装依赖:
pip install -r examples/wysiwyg/requirements.txt
  1. 再次运行应用即可。

额外提醒

推荐优先选择方案一,因为旧版本的库可能存在未修复的bug和安全漏洞,新版本会持续维护更新。

内容的提问来源于stack exchange,提问作者Houy Narun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:59:53