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

开启Debug模式后Flask自动重载功能失效,如何解决?

Flask Debug模式开启但自动重载失效的解决步骤
  • 确认.env文件正确加载
    在app.py中添加代码验证.env是否被读取:

    import os
    from dotenv import load_dotenv
    load_dotenv()  # 确保调用加载方法
    print(os.getenv("FLASK_DEBUG"))  # 正常应输出1
    print(os.getenv("FLASK_APP"))    # 正常应输出app
    

    若输出为空,先安装依赖:pip install python-dotenv,再确保.env文件位于项目根目录。

  • 统一debug配置,消除冲突
    不要同时在app.py中设置debug=True和.env中配置FLASK_DEBUG=1,二选其一:

    • 方案1:保留.env的FLASK_DEBUG=1,删除app.py里的app.debug = True或app.run(debug=True)
    • 方案2:删除.env的FLASK_DEBUG=1,在app.py中用app.run(debug=True)启动(此时直接执行python app.py,而非flask run)
  • 更换Werkzeug的reloader类型
    安装更稳定的watchdog依赖:

    pip install watchdog
    

    然后指定reloader启动:

    flask run --reloader=watchdog
    
  • 清理残留进程
    旧进程未完全终止可能导致监听异常:

    • Linux/macOS:执行pkill python或pkill flask
    • Windows:打开任务管理器,结束所有Python相关进程
      之后重新启动flask run
  • 避免插件与自带reloader冲突
    若使用Flask-Livereloader,不要同时依赖Flask自带reloader:

    1. 安装插件:pip install flask-livereload
    2. 修改app.py代码:
      from flask import Flask
      from flask_livereload import LiveReload
      
      app = Flask(__name__)
      LiveReload(app)
      
      @app.route('/')
      def index():
          return 'Hello'
      
      if __name__ == '__main__':
          app.run(debug=True, use_reloader=True)
      
    3. 直接执行python app.py启动,而非flask run
  • 检查权限与路径

    • 确保项目目录有当前用户的读写权限
    • 将FLASK_APP改为明确路径,比如FLASK_APP=app.py,避免模块路径识别错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:13:20