3

我在生产服务器上使用 django 1.8 + uwsgi + nginx。uwsgi 处于帝王模式。我在 myapp/settings.py 中导入了 uwsgi python 模块,以便在修改代码时启用自动重载。据我了解,此 python 模块仅在 python 线程由 uwsgi worker 生成时才可用于导入。当我尝试手动使用 manage.py collectstatic 时,是导入 settings.py 然后无法导入 uwsgi.py。

有没有办法在使用 uwsgi python 模块的同时仍然能够使用 manage.py ?

我用来启用自动重载的代码(在 myapp/sttings.py 中):

import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload

@timer(3)
    def change_code_gracefull_reload(sig):
    if autoreload.code_changed():
        uwsgi.reload()
4

1 回答 1

1

您应该能够捕获ImportError异常并通过。

try:
    uwsgi
except ImportError:
    pass

或者,您可以为生产服务器使用不同的设置文件。这将从您的常规settings.py文件中导入设置,并包含自动重载的导入和代码。

于 2015-05-09T17:35:19.357 回答