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

无法从flask-security-too导入login_user的问题排查求助

无法从Flask-Security-Too导入login_user函数的问题

我尝试从flask-security-too包中使用login_user函数,但始终无法成功导入。查看官方文档后确认该函数并未被弃用。

我尝试了多种导入组合,均失败:

>>> import flask_security
>>> from flask_security.utils import login_user
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ModuleNotFoundError: No module named 'flask_security.utils'
>>> from flask_security import login_user
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'login_user' from 'flask_security' (unknown location)
>>> from flask_security import utils
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'utils' from 'flask_security' (unknown location)
>>> flask_security.login_user
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'flask_security' has no attribute 'login_user'

以下是我的pip包列表:

Package             Version
------------------- ------------
Babel               2.13.1
bcrypt              4.0.1
blinker             1.6.3
boto3               1.28.75
botocore            1.31.75
cffi                1.16.0
click               8.1.7
cryptography        41.0.5
dnspython           2.4.2
email-validator     2.1.0.post1
Flask               3.0.0
Flask-Assets        2.1.0
flask-babel         4.0.0
Flask-BabelEx       0.9.4
Flask-Login         0.6.3
Flask-Mail          0.9.1
Flask-MDE           1.2.1
Flask-Principal     0.4.0
Flask-Security-Too  5.3.2
Flask-SQLAlchemy    3.1.1
Flask-Table         0.5.0
Flask-WTF           1.2.1
greenlet            3.0.1
gunicorn            21.2.0
idna                3.4
importlib-metadata  6.8.0
importlib-resources 6.1.0
itsdangerous        2.1.2
Jinja2              3.1.2
jmespath            1.0.1
markup              0.2
MarkupSafe          2.1.3
numpy               1.26.1
packaging           23.2
pandas              2.1.2
paramiko            3.3.1
passlib             1.7.4
pip                 23.3.1
psycopg2-binary     2.9.9
pycparser           2.21
PyNaCl              1.5.0
python-dateutil     2.8.2
python-decouple     3.8
python-dotenv       1.0.0
pytz                2023.3.post1
s3transfer          0.7.0
setuptools          53.0.0
six                 1.16.0
speaklater          1.3
SQLAlchemy          2.0.22
sqlalchemy-json     0.7.0
typing_extensions   4.8.0
tzdata              2023.3
urllib3             1.26.18
webassets           2.0
Werkzeug            3.0.1
WTForms             3.1.1
zipp                3.17.0

我确定之前直接用from flask_security import login_user就能成功导入,想知道是不是忽略了什么明显问题,或者相关内容有变更?


补充调试信息

NameError: name 'flask_security' is not defined
>>> import flask_security
>>> print(flask_security.__file__)
None
>>> print(dir(flask_security))
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
>>> print(flask_security.__path__)
_NamespacePath(['/home/datman/flask_venv/lib64/python3.9/site-packages/flask_security', '/home/datman/flask_venv/lib/python3.9/site-packages/flask_security'])
✗ pip show Flask-Security-Too
Name: Flask-Security-Too
Version: 5.3.2
Summary: Quickly add security features to your Flask application.
Home-page: 
Author: Matt Wright
Author-email: Chris Wagner <jwag.wagner+github@gmail.com>
License: 
Location: /home/datman/flask_venv/lib/python3.9/site-packages
Requires: email-validator, Flask, Flask-Login, Flask-Principal, Flask-WTF, importlib-resources, markupsafe, passlib, wtforms
Required-by: 

排查与解决

  • 在全新虚拟环境中仅安装Flask-Security-Too,可正常导入login_user
  • 重新安装所有包后问题解决,推测原因是最初通过requirements.txt安装时出现版本冲突,且手动卸载flask-security替换为flask-security-too后,pip未自动检测并解决依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:25:59