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

Docker部署Flask应用出现flask_debugtoolbar模块缺失报错求助

问题:Docker中Flask应用运行正常,但本地执行pytest时提示flask_debugtoolbar模块找不到

我在Docker中运行一个基础Flask应用,执行docker-compose up --build无报错,requirements.txt中的依赖似乎已全部下载。但在本地执行命令:

$ py.test flowstate/tests

时触发报错,回溯信息如下:

ImportError while loading conftest '/Users/Jaime/python/flask/flowstate-api/flowstate/tests/conftest.py'.
flowstate/tests/conftest.py:3: in
from flowstate.app import create_app
flowstate/app.py:5: in
from flowstate.extensions import (
flowstate/extensions.py:1: in
from flask_debugtoolbar import DebugToolbarExtension

E ModuleNotFoundError: No module named 'flask_debugtoolbar'

相关文件内容

app.py

from flask import Flask

from flowstate.blueprints.page import page

from flowstate.extensions import (
    debug_toolbar,
    db,
    jwt,
    marshmallow
)


def create_app(settings_override=None):
    """ Create a Flask app using the factory pattern. """

    app = Flask(__name__, instance_relative_config=True)

    app.config.from_object('config.settings')
    app.config.from_pyfile('settings.py', silent=True)

    if settings_override:
        app.config.update(settings_override)

    app.register_blueprint(page)
    
    extensions(app)

    return app


def extensions(app):
    """ Mutate the app passed in. """
    debug_toolbar.init_app(app)
    jwt.init_app(app)
    db.init_app(app)
    marshmallow.init_app(app)

    return None

extensions.py

from flask_debugtoolbar import DebugToolbarExtension
from flask_jwt_extended import JWTManager
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow

debug_toolbar = DebugToolbarExtension()
jwt = JWTManager()
db = SQLAlchemy()
marshmallow = Marshmallow()

requirements.txt

# Python web app microframework 
Flask==0.12

# Flask dependencies
itsdangerous==1.1.0
markupsafe==1.1.1

# WSGI HTTP server
gunicorn==19.4

# WSGI app library
werkzeug==0.15.5

# HTML templating library for Flask
jinja2==2.11.3

# Relational databases w/ Python
SQLAlchemy==1.2.0
SQLAlchemy-Utils==0.32

# Integrate relational databases into app
Flask-SQLAlchemy==2.1

# PostgreSQL database adapter in C
psycopg2==2.8.3

# API / JWT Auth
flask-classful==0.14
flask-marshmallow==0.14.0
marshmallow==3.0.0
marshmallow-sqlalchemy==0.27.0
flask-jwt-extended==3.3
PyJWT==1.7.1

# Testing
pytest==2.9

# CLI command handling
Click==6.4

# Extensions
flask-debugtoolbar==0.13.1
faker==0.8.7

# Environmental variables
python-dotenv==0.20.0

解决方法

  • 安装本地环境依赖:Docker的依赖环境和本地是隔离的,你需要在本地环境执行pip install -r requirements.txt,确保所有依赖都安装完成。
  • 确认Python环境一致性:检查当前使用的Python环境是否和开发环境匹配,比如是否激活了正确的虚拟环境。执行which python和which pip查看当前环境路径,切换到正确环境后重新安装依赖。
  • 验证依赖是否安装成功:执行pip list查看已安装包,确认flask-debugtoolbar存在且版本和requirements.txt一致。如果缺失,手动执行pip install flask-debugtoolbar==0.13.1安装指定版本。
  • 测试环境可选优化:如果测试不需要调试工具栏,可以修改代码实现条件导入,避免测试环境依赖。修改extensions.py:
    try:
        from flask_debugtoolbar import DebugToolbarExtension
        debug_toolbar = DebugToolbarExtension()
    except ImportError:
        debug_toolbar = None
    
    然后修改app.py中的extensions函数:
    def extensions(app):
        if debug_toolbar is not None:
            debug_toolbar.init_app(app)
        jwt.init_app(app)
        db.init_app(app)
        marshmallow.init_app(app)
        return None
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:03:31