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

已安装Flask-Login却导入失败:ModuleNotFoundError: No module named 'flask_login'

Flask-Login 导入失败问题排查与解决

问题描述

我正在尝试将Flask-Login与已注册的Flask蓝图配合使用,已完成Flask-Login扩展的安装,通过bin目录或pip freeze命令可确认扩展已存在,但在代码中执行from flask_login import LoginManager时却报错。

引发问题的代码片段(app/init.py)

from flask import Flask, url_for
from importlib import import_module
from os import path
from flask_login import LoginManager  # 此行代码报错

def apply_themes(app):
    @app.context_processor
    def override_url_for():
        return dict(url_for=_generate_url_for_theme)

    def _generate_url_for_theme(endpoint, **values):
        if endpoint.endswith("static"):
            themename = values.get("theme", None) or app.config.get(
                "DEFAULT_THEME", None
            )
            if themename:
                theme_file = "{}/{}".format(themename, values.get("filename", ""))
                if path.isfile(path.join(app.static_folder, theme_file)):
                    values["filename"] = theme_file
        return url_for(endpoint, **values)


def register_blueprints(app):
    lstModule = ["base"]
    for item in lstModule:
        module = import_module("app.{}.routes".format(item))
        app.register_blueprint(module.blueprint)


def create_app(config):
    app = Flask(__name__, static_folder="base/static")
    app.config.from_object(config)
    register_blueprints(app)
    apply_themes(app)
    login_manager = LoginManager()
    login_manager.init_app(app)
    return app

main.py 文件内容

from flask import Flask
from app import create_app
from config import config_dict

try:
    config_mode = config_dict["Debug"]
except KeyError:
    exit("Error: Invalid CONFIG_MODE environment variable entry.")
app = create_app(config_mode)
app.secret_key = "super secret key"
app.config["SESSION_TYPE"] = "filesystem"
app.run(debug=True, host="0.0.0.0", port="5001", threaded=True)

排查与解决步骤

  • 确认虚拟环境一致性
    确保运行项目的Python解释器和安装Flask-Login时使用的pip属于同一个虚拟环境。可以在main.py开头添加以下代码验证:

    import sys
    print(sys.executable)
    print(sys.path)
    

    对比输出的Python路径与pip --version显示的路径是否一致,避免系统Python和虚拟环境Python混淆。

  • 重新安装Flask-Login
    先卸载扩展:pip uninstall flask-login,再重新安装:pip install flask-login,确保安装过程无报错,安装后用pip freeze确认Flask-Login存在。

  • 排查命名冲突
    检查项目目录中是否存在名为flask_login.py或flask_login的文件夹,这会导致Python优先导入本地文件而非第三方扩展,若存在则重命名。

  • 验证安装路径
    执行pip show flask-login查看扩展安装路径,确认该路径在Python的sys.path列表中(可通过上面的代码输出查看)。若不在,可手动添加路径或重新配置虚拟环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:55:11