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

pgAdmin4执行setup.py遇Flask-Security send_mail导入错误求助

问题解决:pgAdmin4服务器模式部署时ImportError: 无法从flask_security导入'send_mail'

核心原因

这个错误几乎都是Flask-Security版本不兼容导致的:

  • 旧版Flask-Security(版本<4.0)提供send_mail方法,但新版的Flask-Security-Too(Flask-Security的官方继任项目,版本从4.0起)已将该方法重命名为send_email,同时调整了API结构。
  • pgAdmin4的特定版本依赖固定的Flask-Security版本,若安装了不匹配的版本就会触发导入错误。

解决方案

1. 安装pgAdmin4要求的精确Flask-Security版本

  • 打开pgAdmin4源码中的requirements.txt或requirements-server.txt文件,找到Flask-Security的指定版本(比如旧版pgAdmin4可能要求Flask-Security==3.0.0)。
  • 卸载当前冲突的包,安装指定版本:
pip uninstall flask-security flask-security-too -y
pip install flask-security==<文件中指定的版本号>

2. 临时修改pgAdmin4导入代码(紧急场景可用,不推荐长期使用)

若无法安装指定版本,可修改你提到的email.py文件:

  • 将from flask_security import send_mail替换为from flask_security import send_email
  • 同步修改代码中所有调用send_mail的位置为send_email(新版参数与旧版基本一致,可直接替换)

3. 检查虚拟环境隔离

确保在pgAdmin4部署的专属虚拟环境中操作,避免全局包冲突:

  • 激活虚拟环境后,重新安装依赖:
pip install -r requirements-server.txt

额外排查点

卸载单独安装的send_email包,因为Flask-Security本身自带邮件发送功能,单独安装可能引发命名空间冲突:

pip uninstall send_email -y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:52:35