Code Change Monitoring funktioniert nicht mit Django 1.7 auf mod-wsgi

Dies ist ein Problem, das ich auf allen meinen Sites festgestellt habe, auf denen Django 1.7 in mod_wsgi ausgeführt wird. Der Kern des Problems ist, dass das Skript zur Codeüberwachung die Korrektur nicht erkennt, wenn ich während der lokalen Entwicklung einen schwerwiegenden Fehler in die Codebasis einbringe und ihn anschließend korrigiere.

Ich benutze Abraham Dumpleton monitor.py script um Änderungen an der Codebasis zu erkennen, wenn ich lokal entwickle (ich verwende Apache anstelle des Django-Entwicklungsservers).

Es hat immer in Django <= 1.6 funktioniert, aber in Django 1.7 wird folgender Fehler angezeigt:

File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    django.setup()
File "/home/me/virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate
    raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant

Das irritierende ist, dass monitor.py die Änderung nicht erkennt, wenn ich den Fehler behebe. Daher muss ich entweder Apache neu starten oder eine andere Datei berühren, die bereits geladen wurde (z. B. die Einstellungsdatei).

Ich denke, das liegt an der Tatsache, dass "der Code zum Neuladen nur importierte Dateien (aka sys.modules) überwacht" Quell). Da die falsche Datei nicht erfolgreich importiert wurde, kann monitor.py den Prozess nicht neu starten.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage