WSL2环境下未安装watchdog时Flask代码修改后无法自动重载求助
Flask代码修改后服务不自动刷新解决方案
- 优先调整启动参数:如果是通过
python main.py命令启动服务,在app.run方法中补充use_reloader=True参数强制开启代码重载功能,修改后代码如下:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "<h1>Hello Stack Overflow!</h1>" if __name__ == "__main__": app.run(debug=True, port=8888, use_reloader=True)
- 确认环境变量生效:如果是通过
flask run命令启动服务,执行echo $FLASK_DEBUG检查输出是否为1,如果输出为空或者0,需要先在当前终端重新执行你配置的4条export命令,再启动服务:
export FLASK_APP=main.py export FLASK_ENV=development export FLASK_RUN_PORT=8888 export FLASK_DEBUG=1
- 排查文件系统问题:如果你在WSL环境下运行,但是代码存放在Windows宿主机的挂载目录(路径以
/mnt/开头),可以将项目移动到WSL原生文件路径(例如/home/你的用户名/目录下)再启动测试,挂载目录的文件变更通知默认无法被WSL内的进程识别,该问题与是否安装watchdog无关。 - 排查编辑器写入问题:确认修改代码后已经手动触发保存,部分编辑器的自动保存有延迟,会导致Flask无法及时检测到文件变更。
内容的提问来源于stack exchange,提问作者David Pedroza Segoviano
相关产品推荐
相关产品推荐

