已安装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
相关产品推荐
相关产品推荐

