Django runserver无法自动检测Python代码变更,每次需重启服务器如何解决
Django 3.2.x Python代码热重载失效解决方案
- 检查项目存储路径:如果项目存放在WSL挂载的Windows目录、网络共享盘、外接移动存储介质中,Django 3.x的默认文件变更检测器无法正常识别跨系统/外部介质的文件修改时间更新,将项目迁移到本地磁盘的原生目录(WSL环境下放到Linux原生文件系统路径,不要放在
/mnt/开头的挂载盘)即可解决。 - 强制使用轮询式重载器:Django 3.2默认优先使用watchman作为重载检测器,若本地watchman配置异常或不兼容,可在启动服务时指定使用stat轮询重载器,执行命令:
python manage.py runserver --reloader=stat
- 升级Django 3.2小版本:Django 3.2.8存在数个已知的自动重载逻辑bug,可升级到3.2分支的最新稳定版,无兼容性风险,执行命令:
pip install --upgrade Django==3.2.25
- 排除软链接/文件锁定影响:如果代码目录使用了软链接映射,将代码直接放到物理路径运行;关闭IDE的文件安全锁定功能(部分IDE默认保存文件时会加临时锁导致修改时间延迟更新),直接用系统文本编辑器修改Python文件测试是否能触发重载。
内容的提问来源于stack exchange,提问作者Y DE
相关产品推荐
相关产品推荐

