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

运行superset db upgrade报错:无法从werkzeug.security导入safe_str_cmp

问题解决:Superset db upgrade 报错 'cannot import name 'safe_str_cmp' from 'werkzeug.security'

错误原因分析

  1. Werkzeug版本兼容性问题:safe_str_cmp 函数在Werkzeug 2.1.0及以上版本中被从 werkzeug.security 移除,你当前环境的Werkzeug版本(2.2.3)超出了Apache Superset 2.0.1的支持范围,导致依赖库(如Flask-AppBuilder)无法找到该函数。
  2. 重复Superset包冲突:你的依赖列表中同时存在 apache-superset==2.0.1 和 superset==0.30.1,这两个是同一软件的不同命名版本(旧版叫superset,新版更名为apache-superset),同时安装会引发严重的依赖混乱。
  3. 依赖冲突提示(翻译):

    错误:pip的依赖解析器目前未考虑所有已安装的包。此行为导致以下依赖冲突:flask 2.2.3 需要 Werkzeug>=2.2.2,但您安装的werkzeug版本是2.0.3,二者不兼容。

解决方案步骤

1. 清理冲突的Superset包

先卸载所有Superset相关包,彻底清除版本冲突:

pip uninstall -y superset apache-superset

2. (推荐)用虚拟环境隔离依赖

创建并激活虚拟环境,避免全局依赖被污染:

# 创建虚拟环境
python -m venv superset_env

# Windows系统激活
superset_env\Scripts\activate

# Linux/Mac系统激活
source superset_env/bin/activate

3. 安装兼容版本的Superset及依赖

安装Apache Superset 2.0.1,并指定匹配的Flask和Werkzeug版本,确保依赖完全兼容:

pip install apache-superset==2.0.1 Flask==2.0.3 Werkzeug==2.0.3

4. 重新执行数据库升级

完成安装后,运行数据库升级命令:

superset db upgrade

补充说明

Apache Superset 2.0.1的官方依赖要求Flask版本在>=2.0.1,<2.2.0、Werkzeug版本在>=2.0.1,<2.2.0范围内,指定版本安装可避免大部分兼容性问题。若需使用更高版本的Flask/Werkzeug,需升级到支持该版本的Superset新版本(如2.1.0及以上),同时注意对应Python版本要求。

内容的提问来源于stack exchange,提问作者vivek singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:25:30