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

Nginx部署的Django应用修改.py文件后运行无更新如何解决

问题排查与解决方案

你反复重启Nginx的操作无法解决问题的核心原因是:Nginx本身不运行任何Python代码,它仅负责处理静态资源、转发动态请求到后端的Django应用容器,py文件的改动需要重启实际运行Django的进程才会生效。

1. 优先重启Django应用容器进程

Django 1.7 + Python 2的部署环境常用的应用容器为uWSGI或Gunicorn,按你实际使用的组件执行重启操作:

  • 若使用uWSGI:如果是系统服务托管,执行service uwsgi restart;如果是supervisor托管,执行supervisorctl restart 你的uWSGI进程名
  • 若使用Gunicorn:直接杀死原有Gunicorn进程后重新运行启动命令即可
  • 若用的是其他进程托管工具,执行对应工具的进程重启命令即可

绝大多数情况下完成这一步就能解决py文件改动不生效的问题。

2. 校验代码路径一致性

如果重启应用容器后仍不生效,需要确认你修改的代码目录和应用实际加载的目录一致:

  • 查看uWSGI/Gunicorn的配置文件,找到chdir参数对应的项目根目录,确认和你修改的views.py所在目录是否完全匹配,避免出现多版本代码目录并存、同步代码传错路径的问题
  • 可以在你修改的views.py对应视图函数中加入一行日志打印代码,比如print "测试代码加载",重启应用进程后触发一次对应页面的请求,查看应用容器的运行日志中是否有对应输出,确认代码是否被进程加载

3. 排查缓存与权限问题

  • 确认Django配置文件settings.py中的DEBUG参数,如果DEBUG = False,Django默认不会自动热加载代码,必须重启应用进程才会加载新代码
  • 确认你手动执行python -m compileall用的Python版本,和应用容器运行时用的Python 2版本完全一致,避免多版本环境下编译的pyc文件不匹配
  • 检查项目目录的权限,确认应用容器的运行用户对项目目录有读写权限,权限不足会导致无法生成新的pyc文件,代码改动不生效

4. 排查服务端缓存配置

如果上述操作都完成后仍有问题,检查是否开启了Django服务端缓存:

  • 查看settings.py中的CACHES配置项,是否配置了Redis、Memcached等缓存后端,是否开启了全站缓存、对应视图的单独缓存
  • 可以临时在视图中新增一个随机返回的参数,重启进程后多次请求看返回结果是否变化,排除缓存返回旧内容的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:09:02