Flask开启Debug模式后代码修改无法自动重载问题咨询
Flask 调试模式不自动重载代码修复方案
- 环境变量生效顺序错误
Windows 下用set配置的环境变量仅对当前命令行会话生效,必须先在cmd里切到app.py所在目录,依次执行完所有环境变量配置命令,再运行flask run启动服务。如果先启动服务再开新窗口配环境变量,配置完全不会生效。
启动后先看终端输出,必须出现以下提示才代表重载功能正常加载:
只要没看到* Debug mode: on * Restarting with stat * Debugger is active!Restarting with stat这行,就说明自动重载模块根本没跑起来。 - 缺少文件监测依赖
这是Windows平台最常见的诱因。Flask默认自带的文件监测逻辑在Windows下兼容性很差,很多时候识别不到文件修改,直接在当前项目的虚拟环境里装个watchdog就行:
装完重启Flask服务,自动重载基本就能正常工作了。pip install watchdog - 项目路径权限不足
要是你把项目放在C盘根目录、Program Files文件夹这类系统受保护的路径下,Flask的监测进程没有权限读取文件修改事件,自然不会触发重载。把整个项目文件夹挪到普通用户目录,比如D:\code\my-flask-demo这类非系统保护路径就可以。 - 环境变量配置失效兜底方法
要是反复配环境变量都出问题,直接跳过环境变量配置步骤,在app.py最末尾加两行启动代码:
之后不用跑if __name__ == '__main__': app.run(debug=True)flask run,直接在命令行执行python app.py启动服务就行,这种方式是硬编码开启调试模式,不会受环境变量配置异常的影响。
最后排查个低级失误:改完代码记得确认已经保存,而且你改的就是当前服务加载路径下的app.py,别开了好几个同名文件改到别的目录,白折腾半天。
内容的提问来源于stack exchange,提问作者Siddharth Sundar
相关产品推荐
相关产品推荐

