无法使用 manage.py,因为在 settings.py 中导入了 uwsgi

Cannot use manage.py because of uwsgi import in settings.py

我在生产服务器上使用 django 1.8 + uwsgi + nginx。 uwsgi 处于皇帝模式。我在 myapp/settings.py 中导入 uwsgi python 模块以在代码修改时启用自动重新加载。据我了解,仅当 uwsgi worker 生成 python 线程时,此 python 模块才可用于导入。当我尝试手动使用 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()

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

try:
    uwsgi
except ImportError:
    pass

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