you tag register forget did django apache mod-wsgi django-wsgi

django - did you forget to register or load this tag



Django deja de funcionar con RuntimeError: populate() no es reentrante (30)

He estado desarrollando una aplicación web Django implementada en un servidor Apache con WSGI, y todo ha ido sin problemas. Hoy, realicé algunos cambios menores en la aplicación admin.py mi aplicación en un intento de personalizar la interfaz de administración de Django incorporada, e inicialmente admin.py un error de sintaxis (un paréntesis no cerrado). Esto significó que cuando toqué wsgi.py y wsgi.py el código (tengo WSGI ejecutándose en modo demonio en mi host virtual), mi sitio web fue reemplazado por un Error interno del servidor porque WSGI se detuvo cuando se produjo el error de sintaxis.

Así que arreglé el error de sintaxis, verifiqué que no tenía más con manage.py check y toqué wsgi.py para wsgi.py a wsgi.py . ¡Pero mi sitio web todavía muestra un error interno del servidor! Comprobando los registros de Apache, esto es lo que veo:

[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter ''quotes.cs.cornell.edu|''. [Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding ''/extra/www/html/quotes/quotes_django'' to path. [Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding ''/opt/rh/python27/root/usr/lib64/python2.7/site- packages/'' to path. [Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process=''quotes.cs.cornell.edu'', application=''quotes.cs.cornell.edu|''): Loading WSGI script ''/extra/www/html/quotes/quotes_django/quotes_django/ wsgi.py''. [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script ''/extra/www/html/ quotes/quotes_django/quotes_django/wsgi.py'' cannot be loaded as Python module. [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI script ''/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py''. [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] Traceback (most recent call last): [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/ quotes_django/wsgi.py", line 14, in <module> [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] application = get_wsgi_application() [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/core/wsgi.py", line 14, in get_wsgi_application [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] django.setup() [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/__init__.py", line 21, in setup [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] apps.populate(settings.INSTALLED_APPS) [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/apps/registry.py", line 115, in populate [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] app_config.ready() [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/contrib/admin/apps.py", line 22, in ready [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] self.module.autodiscover() [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/contrib/admin/__init__.py", line 23, in autodiscover [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] autodiscover_modules(''admin'', register_to=site) [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/utils/module_loading.py", line 74, in autodiscover_modules [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] import_module(''%s.%s'' % (app_config.name, module_to_search)) [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] __import__(name) [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/quotespage/ admin.py", line 25 [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] approve_quotes.short_description = "Approve selected quotes" [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] ^ [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] SyntaxError: invalid syntax [Sun Nov 23 13:53:36 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process=''quotes.cs.cornell.edu'', application=''quotes.cs.cornell.edu|''): Loading WSGI script ''/extra/www/html/quotes/quotes_django/quotes_django/ wsgi.py''. [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script ''/extra/www/html/ quotes/quotes_django/quotes_django/wsgi.py'' cannot be loaded as Python module. [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI script ''/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py''. [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] Traceback (most recent call last): [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/ quotes_django/wsgi.py", line 14, in <module> [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] application = get_wsgi_application() [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/core/wsgi.py", line 14, in get_wsgi_application [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] django.setup() [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/__init__.py", line 21, in setup [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] apps.populate(settings.INSTALLED_APPS) [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site- packages/django/apps/registry.py", line 78, in populate [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] raise RuntimeError("populate() isn''t reentrant") [Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] RuntimeError: populate() isn''t reentrant

La primera serie de errores muestra un error de WSGI debido al error de sintaxis en mi admin.py . Sin embargo, la segunda serie de errores parece mostrar un error interno de Django:

RuntimeError: populate() isn''t reentrant

arrojado desde el método populate de registry.py .

Buscar en Google este mensaje de error devuelve sorprendentemente poca información, nada de la documentación de Django. Aparentemente, a veces puede suceder si nombra una aplicación dos veces en su settings.py , pero no estoy haciendo eso. Más importante aún, no he cambiado settings.py desde el momento en que el sitio web funcionaba bien; lo único que cambié fue admin.py .

Intenté revertir todos los cambios que hice, por lo que todo mi código de Python volvió al estado en que estaba cuando el sitio web funcionaba, y todavía recibo el error populate() isn''t reentrant cuando intento hacer que WSGI vuelva a cargar el código !

También he intentado comentar diferentes aplicaciones en la sección INSTALLED_APPS de settings.py , e incluso con solo ''django.contrib.staticfiles'' habilitado, el error aún ocurre. Extrañamente, sigo recibiendo el error incluso si comento todas las aplicaciones: ¡Django arroja el error incluso cuando no está cargando ninguna aplicación!

¿Alguien sabe lo que está pasando aquí? ¿O alguna forma mejor para mí de depurar este error, ya que el rastreo en el registro de Apache es bastante inútil?

Notas: Estoy usando Django 1.7, Apache 2.2 y Python 2.7.


Agregando mi razón a la lista. Para mí fue porque tenía un servicio django nombrado con el mismo directorio que un directorio de proceso. Cambiar el nombre del proceso / dir solucionó el problema.


Creo que este es un error genérico cuando algo está mal settings.py . A veces puedo encontrar el problema por prueba y error eliminando las aplicaciones instaladas una por una. En algunos casos, no está relacionado con las aplicaciones instaladas. Pero desde mi experiencia, en todos los casos es un problema dentro del settings.py archivo.


En mi caso, el error ocurrió porque faltaba un paquete pip requerido.

Entonces hice un pip install -r requirements.txt apache, reinicié y las cosas volvieron a funcionar.


En mi caso, tuve una importación circular, lo que causó un error que rompió el método de llenado.


Nota sobre AWS Elastic Beanstalk: el valor predeterminado settings.py escrito por Django-admin incluye una referencia a una base de datos sqlite local como fuente de datos. Esto probablemente funcionará en su sistema operativo local, pero no en AWS EB, y dará el populate() isn''t reentrant error de tiempo de ejecución. Para probar esto, simplemente comente la DATABASES={<...>} declaración settings.py , implemente y vuelva a abrir la aplicación.


Para tirar mis 2 centavos de euro:

Recreé una configuración de trabajo en Docker. La nueva configuración de Docker falló con

populate isn''t reentrant

que parece ser un error genérico En mi caso, pasé por alto eso

pip install Django

instala la última versión ( 2.0 ), en lugar de la versión requerida 1.11 . Cambiando esto a

pip install Django==1.11

arreglaron mi problema


Quitar el directorio virtualenv, recrear el virtualenv y luego reinstalar todos los requisitos me lo arregló.


Reiniciar el servidor Apache para mí resolvió el problema. Puede hacerlo utilizando el comando $ sudo service apache2 restart


Resolví un problema al agregar __init__.py a mi carpeta de aplicaciones.

touch /mainprojectfolder/projectfolderwhichcontainswsgi.py/apps/__init__.py

Entonces funcionó!


Tuve este mismo problema, lo que funcionó para mí fue comentar la configuración predeterminada de la base de datos en / settings.py. También leí que las versiones posteriores de django no son compatibles con ebs


Tuve un recursivo django.setup() , por ejemplo, traté de escribir un django.setup() dentro de un an app/models.py , en la pila de seguimiento django trató de señalar esto cerca:

... "site-packages/django/apps/config.py", line 211, in import_models self.models_module = import_module(models_module_name) ... ... ./myproject/myapp/models.py ...

así que sí, asegúrese de no intentar configurar django mientras se está configurando django ...


verifique si ha mencionado sus nombres de API dos veces en la sección de la aplicación instalada settings.py.

Definición de la aplicación

INSTALLED_APPS = [ ... ''rest_framework'', ''myapp_api'', ''myapp_api.apps.myappWebserviceApiConfig'', ]

Definición de la aplicación

INSTALLED_APPS = [ ... ''rest_framework'', ''myapp_api.apps.myappWebserviceApiConfig'', ]

Eliminar entradas duplicadas resolvió mi problema



Configuración: Ubuntu 14.04, Django 1.10, Python 3.5 (en virtualenv ).

Probé muchas de estas soluciones sin suerte, pero luego noté que el registro de errores de Apache contiene dos errores diferentes en mi caso. Uno que ocurre cuando alguien intenta visitar una página, otro que ocurre al inicio. Me perdí el inicio porque generalmente intenté actualizar la página un par de veces y, por lo tanto, solo vi el error de visita repetido unas pocas veces.

Luego busqué soluciones al error de inicio y la solución a esta pregunta funcionó para mí . Brevemente, implica actualizar el paquete mod_wsgi de forma indirecta.

Había estado recibiendo advertencias durante meses sobre la falta de coincidencia en mod_wsgi versiones mod_wsgi , pero de repente resultó en el error Apache 500''s. No tiene ningún sentido para mí.

Mi suposición es que este error RuntimeError: populate() isn''t reentrant es generalmente una señal de que uno debe buscar un error de inicio, lo que indica el problema real.

de visita

[Sat Oct 15 03:38:08.900966 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Target WSGI script ''/django/GP/GP/wsgi.py'' cannot be loaded as Python module. [Sat Oct 15 03:38:08.901409 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Exception occurred processing WSGI script ''/django/GP/GP/wsgi.py''. [Sat Oct 15 03:38:08.901662 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] Traceback (most recent call last): [Sat Oct 15 03:38:08.902184 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/GP/GP/wsgi.py", line 16, in <module> [Sat Oct 15 03:38:08.902217 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] application = get_wsgi_application() [Sat Oct 15 03:38:08.902501 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application [Sat Oct 15 03:38:08.902529 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] django.setup(set_prefix=False) [Sat Oct 15 03:38:08.902726 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/__init__.py", line 27, in setup [Sat Oct 15 03:38:08.902755 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] apps.populate(settings.INSTALLED_APPS) [Sat Oct 15 03:38:08.902924 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/apps/registry.py", line 78, in populate [Sat Oct 15 03:38:08.902953 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] raise RuntimeError("populate() isn''t reentrant") [Sat Oct 15 03:38:08.903111 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] RuntimeError: populate() isn''t reentrant

puesta en marcha

[Sat Oct 15 03:38:08.900966 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Target WSGI script ''/django/GP/GP/wsgi.py'' cannot be loaded as Python module. [Sat Oct 15 03:38:08.901409 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Exception occurred processing WSGI script ''/django/GP/GP/wsgi.py''. [Sat Oct 15 03:38:08.901662 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] Traceback (most recent call last): [Sat Oct 15 03:38:08.902184 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/GP/GP/wsgi.py", line 16, in <module> [Sat Oct 15 03:38:08.902217 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] application = get_wsgi_application() [Sat Oct 15 03:38:08.902501 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application [Sat Oct 15 03:38:08.902529 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] django.setup(set_prefix=False) [Sat Oct 15 03:38:08.902726 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/__init__.py", line 27, in setup [Sat Oct 15 03:38:08.902755 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] apps.populate(settings.INSTALLED_APPS) [Sat Oct 15 03:38:08.902924 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] File "/django/env/lib/python3.5/site-packages/django/apps/registry.py", line 78, in populate [Sat Oct 15 03:38:08.902953 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] raise RuntimeError("populate() isn''t reentrant") [Sat Oct 15 03:38:08.903111 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] RuntimeError: populate() isn''t reentrant [Sat Oct 15 03:38:43.291502 2016] [:error] [pid 28272] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Sat Oct 15 03:38:43.291579 2016] [:error] [pid 28272] Traceback (most recent call last): [Sat Oct 15 03:38:43.291604 2016] [:error] [pid 28272] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Sat Oct 15 03:38:43.292356 2016] [:error] [pid 28272] assert tlock is not None [Sat Oct 15 03:38:43.292377 2016] [:error] [pid 28272] AssertionError: [Fri Oct 14 23:38:43.412942 2016] [:error] [pid 28299] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.413044 2016] [:error] [pid 28299] Traceback (most recent call last): [Fri Oct 14 23:38:43.413076 2016] [:error] [pid 28299] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.425037 2016] [:error] [pid 28275] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.425125 2016] [:error] [pid 28275] Traceback (most recent call last): [Fri Oct 14 23:38:43.425157 2016] [:error] [pid 28275] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.427625 2016] [:error] [pid 28274] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.427694 2016] [:error] [pid 28274] Traceback (most recent call last): [Fri Oct 14 23:38:43.427722 2016] [:error] [pid 28274] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.432020 2016] [:error] [pid 28273] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.432078 2016] [:error] [pid 28273] Traceback (most recent call last): [Fri Oct 14 23:38:43.432105 2016] [:error] [pid 28273] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.438577 2016] [:error] [pid 28299] assert tlock is not None [Fri Oct 14 23:38:43.438654 2016] [:error] [pid 28299] AssertionError: [Fri Oct 14 23:38:43.442174 2016] [:error] [pid 28274] assert tlock is not None [Fri Oct 14 23:38:43.442226 2016] [:error] [pid 28274] AssertionError: [Fri Oct 14 23:38:43.447227 2016] [:error] [pid 28276] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.447294 2016] [:error] [pid 28276] Traceback (most recent call last): [Fri Oct 14 23:38:43.447326 2016] [:error] [pid 28276] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.448813 2016] [:error] [pid 28277] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Fri Oct 14 23:38:43.448876 2016] [:error] [pid 28277] Traceback (most recent call last): [Fri Oct 14 23:38:43.448903 2016] [:error] [pid 28277] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Fri Oct 14 23:38:43.450188 2016] [:error] [pid 28273] assert tlock is not None [Fri Oct 14 23:38:43.450231 2016] [:error] [pid 28273] AssertionError: [Fri Oct 14 23:38:43.456680 2016] [:error] [pid 28275] assert tlock is not None [Fri Oct 14 23:38:43.456737 2016] [:error] [pid 28275] AssertionError: [Fri Oct 14 23:38:43.461761 2016] [:error] [pid 28277] assert tlock is not None [Fri Oct 14 23:38:43.461826 2016] [:error] [pid 28277] AssertionError: [Fri Oct 14 23:38:43.466165 2016] [:error] [pid 28276] assert tlock is not None [Fri Oct 14 23:38:43.466219 2016] [:error] [pid 28276] AssertionError: [Fri Oct 14 23:38:43.658971 2016] [mpm_prefork:notice] [pid 28268] AH00169: caught SIGTERM, shutting down [Sat Oct 15 03:38:43.691909 2016] [:error] [pid 28272] Exception ignored in: <module ''threading'' from ''/usr/lib/python3.4/threading.py''> [Sat Oct 15 03:38:43.691968 2016] [:error] [pid 28272] Traceback (most recent call last): [Sat Oct 15 03:38:43.691996 2016] [:error] [pid 28272] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown [Sat Oct 15 03:38:43.693126 2016] [:error] [pid 28272] assert tlock is not None [Sat Oct 15 03:38:43.693159 2016] [:error] [pid 28272] AssertionError: [Fri Oct 14 23:38:44.490316 2016] [:warn] [pid 28349] mod_wsgi: Compiled for Python/3.4.0. [Fri Oct 14 23:38:44.490407 2016] [:warn] [pid 28349] mod_wsgi: Runtime using Python/3.4.3. [Fri Oct 14 23:38:44.505672 2016] [mpm_prefork:notice] [pid 28349] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.19 mod_wsgi/3.4 Python/3.4.3 configured -- resuming normal operations [Fri Oct 14 23:38:44.505764 2016] [core:notice] [pid 28349] AH00094: Command line: ''/usr/sbin/apache2''


El administrador de mi servidor reinició Apache, y eso solucionó mágicamente este problema. Los mismos archivos Python cargados sin causar populate() isn''t reentrant . Incluso intenté cargar otro archivo con un error de sintaxis, luego corregirlo, y el servidor pudo cargar el nuevo archivo y ejecutarlo correctamente sin problemas.

Todavía no sé qué iba mal, pero estoy marcando esto como respondido ya que el problema desapareció. (Bueno, lo marcaré como respondido tan pronto como me permita aceptar mi propia respuesta).

Actualización : después de continuar recibiendo este error cuando subí accidentalmente Python con errores de sintaxis, descubrí una solución que es más fácil que reiniciar Apache. Cuando WSGI comienza a arrojar el error populate() isn''t reentrant , reemplazo wsgi.py mi proyecto Django con esta simple función:

def application(environ, start_response): if environ[''mod_wsgi.process_group''] != '''': import signal os.kill(os.getpid(), signal.SIGINT) return ["killed"]

Luego vuelvo a cargar mi sitio web, y el proceso del demonio WSGI se reinicia (lo que puedo decir mirando el registro de Apache, a pesar de que el sitio web todavía muestra el mismo error 500).

Si luego cambio wsgi.py a normal y vuelvo a cargar de nuevo, WSGI recoge con éxito mi código sin arrojar populate() isn''t reentrant (suponiendo que esta vez no tenga errores de sintaxis). Por lo tanto, no es necesario reiniciar la totalidad de Apache, solo el proceso WSGI, y puedo hacerlo sin privilegios de root.


En mi caso, tenía una custom renderer class para Django Rest Framework , por algún motivo tuve que anular el método de la clase de renderizador "get_context" (divulgación completa: para hacer que la django toolbar proporcione el conteo correcto de consultas SQL)

Eliminé esa clase y la redistribuí. Funcionó.


Es posible que pueda solucionarlo sin reiniciar Apache tocando un archivo (que no sea wsgi.py) que se encuentra al principio del proceso de carga. Por ejemplo, su archivo de configuración:

$ touch settings.py

Tampoco he resuelto esto correctamente, pero hay más información en mi pregunta aquí: el monitoreo de cambio de código no funciona correctamente con Django 1.7 en mod-wsgi


Estaba entrando en este mismo error después de haber cambiado el orden de esta configuración:

MIDDLEWARE_CLASSES = ( ''django.contrib.sessions.middleware.SessionMiddleware'', ''django.middleware.common.CommonMiddleware'', ''django.middleware.csrf.CsrfViewMiddleware'', ''django.contrib.auth.middleware.AuthenticationMiddleware'', ''django.contrib.auth.middleware.SessionAuthenticationMiddleware'', ''django.contrib.messages.middleware.MessageMiddleware'', ''django.middleware.clickjacking.XFrameOptionsMiddleware'', ''django.middleware.security.SecurityMiddleware'', )

volver a ponerlo en el pedido aquí antes y reiniciar apache solucionó el problema.


Este error también se genera si el uso de espacio y tabulación en el código es inconsistente.


Esto es causado por un error en la configuración de Django en alguna parte. Desafortunadamente, Django está ocultando el error detrás de este mensaje de error genérico y poco útil.

Para revelar el verdadero problema, abra django/apps/registry.py y alrededor de la línea 80, reemplace:

raise RuntimeError("populate() isn''t reentrant")

con:

self.app_configs = {}

Esto permitirá que Django continúe cargando y revele el error real.

He encontrado este error por varias causas diferentes. Una vez fue porque tuve una mala importación en una de las admin.py de mi aplicación.


Esto parece una buena colección de respuestas válidas para el mismo error de Apache mod-wsgi, cada uno publica el que le funciona, así que aquí está el mío:

No olvide actualizar los requisitos de su proyecto después de la implementación :)


Experimenté este mismo problema, y ​​la fuente del error para mí fue solo un error de sintaxis en un archivo con el que estaba trabajando. Después de corregir el error tipográfico, el error populate() is not reentrant desapareció.

Si está ejecutando django desde un script wsgi, es posible que pueda identificar el error tipográfico simplemente ejecutando el script wsgi desde la línea de comandos. Por ejemplo:

cd /usr/local/www/wsgi-scripts/ python djangolauncher.wsgi


La multitud de respuestas lo deja claro; Este es un error genérico que puede tener múltiples causas raíz, generalmente relacionadas con la carga de Apache / WSGI.

Todas estas respuestas en esta página deberían funcionar como una especie de lista de verificación, y en ese sentido quiero agregar la causa raíz de mi instancia de este error: falla al agregar un ''import os'' a su archivo settings.py.

Específicamente, teníamos un desarrollador en nuestro equipo que tenía la intención de eliminar un paquete innecesario y, en su lugar, eliminó ''import os'' de la parte superior del archivo settings.py de producción. Después de un reinicio de Apache, nuestra aplicación no se reiniciaba y recibimos el temido error ''RuntimeError: populate () no es reentrante''.

Un rápido ''python manage.py check'' no reveló el problema, pero un ''python settings.py'' sí; El paquete del sistema operativo no se cargó.

Si tiene este error, centre su búsqueda en verificar sus archivos settings.py y también su archivo WSGI.


No es una respuesta sino una reflexión.

Cuando actualiza a django 1.7 y tiene un error 500 y vuelve a cargar su página, Apache dice "populate () no es reentrante". Creo que es cuando carga su página, Apache carga todos los módulos que necesita para su aplicación y cuando el error es manejar no descarga el módulo. Entonces, cuando vuelve a cargar su página, apache carga nuevamente estos módulos pero ya está cargado. Entonces, apache dice "populate () no es reentrante".

Tengo dos acciones para corregir esto: reiniciar apache o corregir el error que maneja el primer error de 5OO.

Intenta reiniciar Apache con:

sudo service httpd restart

Espero que te ayude.


Sé que esta es una respuesta anterior, pero contribuiré con mi solución:

Como una forma de diagnosticar el origen del problema, ejecute manage.py check y vea si encuentra algo allí

En mi caso, el problema era un requisito obsoleto y django no podía importar un submódulo

Asegúrese de que sus requisitos estén actualizados


Sé que ha pasado un tiempo desde que se hizo esta pregunta, pero me encontré con este problema debido a un problema que no he visto discutido aquí. Estaba obteniendo el RuntimeError: populate() isn''t reentrant error RuntimeError: populate() isn''t reentrant debido a SELinux en CentOS 7. Tenía Django servido desde un directorio de inicio, y simplemente tenía que habilitar el booleano SELinux que permitía leer directorios de inicio, ya que el populate ( ) error se debió a un problema de permisos. La solución para mí fue setsebool -P httpd_read_user_content 1 . Espero que esto ayude a alguien que tenga este problema.


Si recibe este error cuando usa Google App Engine, revise sus registros para ver si hay otros errores que puedan estar causando esto. Yo estaba consiguiendo:

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3

No puede usar SQLite con Google App Engine, por lo que comentar la sección DATABASES de settings.py detuvo ese error y el error RuntimeError("populate() isn''t reentrant") también.


Simplemente enfrenté el mismo problema, así que comencé a mirar alrededor.

Ahora lo tengo funcionando, ¡así que pensé que debería compartirlo con ustedes!

Todo lo que hice fue hacer chown user:group /to/path -R y chmod 770 /to/path -R nuevo y funcionó.


Tuve este problema y no pude encontrar ninguna respuesta por qué hasta que retrocedí mis confirmaciones. Aparentemente, agregué una importación accidental, debido a la finalización automática, que arruinó la configuración.

# found in models.py from msilib.schema import SelfReg

En el registro de errores de apache: RuntimeError ("populate () no es reentrante")

Funcionó bien en mi entorno de desarrollo de Windows pero falló en el servidor ubuntu / apache.


RuntimeError: populate() isn''t reentrant

Puede ser cualquier cosa, es por eso que hay tantas respuestas diferentes para esta pregunta.

El truco es mirar el mensaje de error justo antes del RuntimeError . En su caso, parece haber un error de sintaxis en el archivo /extra/www/htmlquotes/quotes_django/quotespage/admin.py en la línea 15, consulte:

Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/htmlquotes/quotes_django/quotespage/admin.py", line 25 [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] pprove_quotes.short_description = "Approve selected quotes" [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] ^ [Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] SyntaxError: invalid syntax