Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改django设置后,uwsgi不会重新加载_Python_Django_Uwsgi - Fatal编程技术网

Python 更改django设置后,uwsgi不会重新加载

Python 更改django设置后,uwsgi不会重新加载,python,django,uwsgi,Python,Django,Uwsgi,我已经建立了uwsgi为nginx背后的django服务。然后,我在django设置中更改了数据库,但uwsgi仍然使用旧数据库显示站点 我也试着补充说 touch-reload = /etc/uwsgi/apps-available/django.ini 到ini文件。但在重新启动uwsgi并触摸django.ini之后,它仍然为旧站点提供服务。我试图停用并重新激活virtualenv,也没有机会。所以我真的很困惑,感谢你的提示 来自uWSGI文件关于: 如果修改/触摸了指定的文件,请重新加

我已经建立了uwsgi为nginx背后的django服务。然后,我在django设置中更改了数据库,但uwsgi仍然使用旧数据库显示站点

我也试着补充说

touch-reload = /etc/uwsgi/apps-available/django.ini
到ini文件。但在重新启动uwsgi并触摸django.ini之后,它仍然为旧站点提供服务。我试图停用并重新激活virtualenv,也没有机会。所以我真的很困惑,感谢你的提示

来自uWSGI文件关于: 如果修改/触摸了指定的文件,请重新加载uWSGI 因此,如果要在settings.py中重新加载更改,应执行以下操作:

touch-reload = /path/to/your/django-project/settings.py
在uWSGI ini文件中的任何更改上重新加载uWSGI之前使用的指令

仅供参考,如果您需要在代码库发生更改时重新启动uWSGI,您也可以使用py autoreload指令: 所以在你的uwsgi.ini中应该有这样的东西

py-autoreload = 1
注意,这些选项不建议用于生产。
祝你好运

这是我的uWSGI配置文件

wsgi-file = /home/www-data/djcode/metCCS/metCCS/nginx/wsgi.py
processer = 4
threads = 2
stats = 127.0.0.1:6000
enable-threads = true
master = true
harakiri = 30
socket = /usr/share/nginx/html/ng-sock/metCCS.sock
chmod-socket = 775
uid = www-data
gid = www-data
touch-reload = /home/www-data/djcode/metCCS/metCCS/settings.py

然后,
touch/home/www-data/djcode/metCCS/metCCS/settings.py
工作正常。

贝尔特的答案解决了您的问题,原因是uWSGI在主进程模式下运行时只能正常重启。


我只需要将
master=true
添加到我的ini文件中,就可以让
touch-reload
参数工作。

你这个摇滚老兄!