WSL中Python运行缓慢,Flask开发服务启动及重载卡顿求助
Flask开发环境启动及重载缓慢问题排查方案
问题描述
- 执行命令
FLASK_ENV=development flask run运行Flask应用时,服务启动速度较两三个月前明显变慢 - 开启开发环境模式后,文件变更触发服务重载需要40-50秒
- 额外疑问:使用WSL命令安装发行版时,通常默认是高版本,但2022年12月9日安装的却是Debian 9
已尝试操作
- 重新安装Python 3.8、3.9版本
- 重新安装WSL(包括Debian、Ubuntu发行版)
排查与解决建议
针对Flask启动及重载缓慢
- 缩小文件监听范围:Flask开发服务器默认监听项目目录下所有文件,若目录里有大量日志、缓存、
node_modules这类无关文件,会严重拖慢重载速度。可以在项目根目录创建.flaskenv文件,添加FLASK_RUN_EXTRA_FILES来指定只监听必要的文件或目录;如果Flask版本支持,也可使用--exclude-pattern参数排除不需要监听的路径。 - 停用非必要扩展:启动时加载的第三方扩展、调试工具可能增加启动耗时。临时注释掉不需要的扩展初始化代码,测试启动速度是否回升,逐步定位出耗时的扩展。
- 重建虚拟环境:重装Python后,依赖包可能存在版本冲突或冗余。删除项目的虚拟环境,重新创建并安装依赖:
rm -rf venv python3 -m venv venv source venv/bin/activate pip install -r requirements.txt - 更换开发服务器:默认的Werkzeug服务器在WSL环境下监听效率可能不高,可以试试
waitress或gunicorn替代,开发模式下添加--reload参数测试:pip install waitress waitress-serve --port 5000 --reload your_app:app
针对WSL安装Debian 9的疑问
- 指定版本安装:WSL默认安装的发行版版本可能随微软镜像源变化,要安装高版本Debian,可直接指定发行版安装:
若还是安装旧版本,可手动下载高版本Debian的WSL镜像包,用wsl --install -d Debianwsl --import命令导入:wsl --import Debian ./Debian ./debian-latest-amd64.tar.gz - 升级现有Debian 9:如果已经装了Debian 9,直接升级到最新版本:
sudo apt update && sudo apt upgrade -y sudo sed -i 's/stretch/bullseye/g' /etc/apt/sources.list sudo apt update && sudo apt dist-upgrade -y
内容的提问来源于stack exchange,提问作者Sasha Karalchuk
相关产品推荐
相关产品推荐

