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

ImportError: 无法从flask导入Markup,相关依赖环境下求解决方案

Flask 3.0.0 导入 flask_ckeditor 时出现 ImportError 问题

我的代码

from flask import Flask, render_template, redirect, url_for
from flask_bootstrap import Bootstrap5
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired, URL
from flask_ckeditor import CKEditor, CKEditorField

报错信息

Traceback (most recent call last):
  File "/home/mustafa/Desktop/Backend/REST-API/some_project/main.py", line 7, in <module>
    from flask_ckeditor import CKEditor, CKEditorField
  File "/home/mustafa/Desktop/Backend/REST-API/some_project/venv/lib/python3.10/site-packages/flask_ckeditor/__init__.py", line 12, in <module>
    from flask import current_app, Markup, Blueprint, url_for, request, jsonify, render_template_string
ImportError: cannot import name 'Markup' from 'flask' (/home/mustafa/Desktop/Backend/REST-API/some_project/venv/lib/python3.10/site-packages/flask/__init__.py)

依赖配置(requirements.txt)

Bootstrap_Flask==2.3.0
Flask==3.0.0
Flask_CKEditor==0.4.6
flask_sqlalchemy==3.1.1
Flask_WTF==1.2.1
WTForms==3.0.1

解决方案

问题根源是 Flask 3.0.0 移除了从flask直接导入Markup的方式,Markup现在移到了markupsafe库中,而你使用的 Flask-CKEditor 0.4.6 版本过旧,未适配该变化。

有两种可行解决方式:

  • 方法一:升级 Flask-CKEditor 到兼容版本
    执行命令更新至最新版:

    pip install --upgrade flask-ckeditor
    

    最新版 Flask-CKEditor 已适配 Flask 3.x 系列,更新后即可正常导入。

  • 方法二:降级 Flask 到 2.x 版本
    若不想升级 Flask-CKEditor,可将 Flask 降级到 2.x 稳定版,例如:

    pip install flask==2.3.3
    

    同时更新 requirements.txt 中的 Flask 版本号为Flask==2.3.3。

不推荐直接修改 Flask-CKEditor 源码临时修复,会增加后续维护成本,优先选择上述两种官方兼容方案。

内容的提问来源于stack exchange,提问作者Mustafa Er

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:56:22