Django pára de funcionar com RuntimeError: populate () não é reentrante

Eu tenho desenvolvido um aplicativo da web Django implementado em um servidor Apache com WSGI, e tudo está indo bem. Hoje, fiz algumas pequenas alterações no admin.py do meu aplicativo, na tentativa de personalizar a interface do Django Admin e, inicialmente, cometi um erro de syntax (um parêntese não fechado). Isso significava que, quando eu tocava wsgi.py e carregava o código (tenho o WSGI em execução no modo daemon no meu host virtual), meu site foi substituído por um Erro Interno do Servidor porque o WSGI parou quando atingiu o erro de syntax.

Então eu consertei o erro de syntax, verifiquei que não tinha mais com o manage.py check e toquei em wsgi.py para reimplantar. Mas meu site ainda exibe um erro interno do servidor! Verificando os logs do Apache, isso é o que eu vejo:

 [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  [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  [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 

A primeira série de erros mostra a falha do WSGI devido ao erro de syntax no meu admin.py . No entanto, a segunda série de erros parece mostrar um erro interno ao Django:

 RuntimeError: populate() isn't reentrant 

lançado a partir do método populate de registry.py .

Pesquisando essa mensagem de erro, surpreendentemente há poucas informações, nada disso na documentação do Django. Aparentemente, às vezes pode acontecer se você nomear um aplicativo duas vezes no seu settings.py , mas eu não estou fazendo isso. Mais importante, eu não mudei o settings.py desde o momento em que o site estava funcionando – a única coisa que eu mudei foi o admin.py .

Eu tentei reverter todas as alterações que fiz, então todo o meu código Python está de volta ao estado em que estava quando o site estava funcionando – e ainda recebo o erro populate() isn't reentrant quando tento fazer o WSGI recarregar o código !

Eu também tentei comentar diferentes aplicativos na seção INSTALLED_APPS do settings.py , e mesmo com apenas ‘django.contrib.staticfiles’ ativado o erro ainda acontece. Estranhamente, eu ainda recebo o erro mesmo se eu comentar todos os aplicativos – o Django lança o erro mesmo quando não está carregando nenhum aplicativo!

Alguém sabe o que está acontecendo aqui? Ou alguma maneira melhor para eu depurar este erro, já que o traceback no log do Apache é bastante inútil?

Notas: Estou usando o Django 1.7, o Apache 2.2 e o Python 2.7.

O administrador do meu servidor reiniciou o Apache e isso resolveu magicamente esse problema. Os mesmos arquivos Python carregados sem causar populate() isn't reentrant . Eu até tentei carregar outro arquivo com um erro de syntax, depois corrigi-lo, e o servidor conseguiu carregar o novo arquivo e executá-lo corretamente sem problemas.

Eu ainda não sei o que estava dando errado, mas estou marcando isso como respondido desde que o problema se foi. (Bem, vou marcá-lo como respondido assim que o StackOverflow permitir que eu aceite minha própria resposta.)

Atualização : Depois de continuar recebendo esse erro quando eu acidentalmente carrego o Python com erros de syntax, descobri uma solução alternativa que é mais fácil do que reiniciar o Apache. Quando o WSGI começa a lançar o populate() isn't reentrant erro populate() isn't reentrant , eu substituo o wsgi.py do meu projeto Django por esta function simples:

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

Então eu recarrego meu site, e o processo daemon WSGI é reiniciado (o que eu posso dizer olhando o log do Apache, mesmo que o site ainda exiba o mesmo erro 500).

Se eu, então, alterar o wsgi.py volta ao normal e recarregar novamente, o WSGI wsgi.py meu código com êxito sem lançar populate() isn't reentrant (supondo que não tenha erros de syntax desta vez). Assim, a totalidade do Apache não precisa ser reiniciada, apenas o processo WSGI, e eu posso fazer isso sem privilégios de root.

Eu sei que esta é uma resposta antiga, mas contribuirei com a minha solução:

Como forma de diagnosticar a origem do problema, execute manage.py check e veja se encontra alguma coisa lá

No meu caso, um requisito desatualizado era o problema e o django não estava conseguindo importar um submódulo

Certifique-se de que seus requisitos estejam atualizados

Se você está recebendo este erro ao usar o Google App Engine, verifique se há outros erros que possam estar causando isso em seus registros. Eu estava conseguindo:

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

Você não pode usar o SQLite com o Google App Engine, portanto, comentando a seção DATABASES de settings.py parou esse erro e o erro RuntimeError("populate() isn't reentrant") também.

Não é uma resposta, mas uma reflection.

Quando você atualiza para o django 1.7 e você tem um erro 500 e recarrega sua página, o Apache diz que “populate () não é reentrante”. Acho que é quando você carrega sua página, o Apache carrega todos os módulos que você precisa para o seu aplicativo e quando o erro é manipulado, ele não descarrega o módulo. Então, quando você recarregar sua página, o apache carrega novamente esses módulos, mas ele já está carregado. Então, o apache diz que “populate () não é reentrante”.

Eu tenho duas ações para corrigir isso: Reinicie o apache ou corrija o erro que manipula o primeiro erro 5OO.

Espero que isso ajude você.

Você pode consertá-lo sem reiniciar o Apache tocando em um arquivo (diferente de wsgi.py) que está no início do processo de carregamento. Por exemplo, seu arquivo de configurações:

 $ touch settings.py 

Eu também não resolvi isso corretamente, mas mais informações na minha pergunta aqui: Falha na monitoração de alteração de código com o Django 1.7 no mod-wsgi

Isto parece uma boa coleção de respostas válidas para o mesmo erro de mod-wsgi do Apache, cada cara postando o que funciona para ele / ela, então aqui está o meu:

Não se esqueça de atualizar os requisitos do seu projeto após a implantação 🙂

O Apache armazena o arquivo wsgi em seu cache. Desativar o cache do Apache de arquivos python

Portanto, primeiro exclua o arquivo wsgi e reinicie o seu acpache e, em seguida, adicione o arquivo wsgi novamente e reinicie o apache.

Eu experimentei esse mesmo problema, e a origem do erro para mim foi apenas um erro de syntax em um arquivo com o qual eu estava trabalhando. Depois de corrigir o erro de digitação, o erro populate() is not reentrant desapareceu.

Se você estiver executando o django a partir de um script wsgi, poderá identificar o erro de digitação apenas executando o script wsgi a partir da linha de comando. Por exemplo:

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

Acabei de enfrentar o mesmo problema, então comecei a olhar em volta.

Agora estou trabalhando, então pensei em compartilhar com vocês!

Tudo que fiz foi chown user:group /to/path -R e chmod 770 /to/path -R tudo de novo e funcionou.

Instalação: Ubuntu 14.04, Django 1.10, Python 3.5 (em virtualenv ).

Eu tentei muitas dessas soluções sem sorte, mas depois percebi que o log de erros do Apache contém dois erros diferentes no meu caso. Um que acontece quando alguém tenta visitar uma página, outra que acontece na boot. Eu perdi a boot porque eu geralmente tentei atualizar a página algumas vezes e, portanto, só vi o erro na visita repetido algumas vezes.

Em seguida, procurei soluções para o erro de boot e a solução para essa pergunta funcionou para mim . Resumidamente, envolve a atualização do pacote mod_wsgi forma indireta.

Eu recebia avisos por meses sobre a incompatibilidade nas versões mod_wsgi , mas de repente isso resultou no erro Apache 500’s. Não faz nenhum sentido para mim.

Meu palpite é que este RuntimeError: populate() isn't reentrant é geralmente um sinal de que se deve procurar por um erro de boot, o que indica o problema real.

na 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  [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 

comece

 [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  [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:  [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:  [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:  [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:  [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:  [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:  [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:  [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:  [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' 

Eu tive esse problema e não consegui encontrar nenhuma resposta porque até que eu retrocedi meus commits. Aparentemente, eu adicionei uma importação acidental, por causa do preenchimento automático, que estragou a configuração.

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

No log de erro do apache: RuntimeError (“populate () não é reentrante”)

Ele funcionou bem no meu ambiente de desenvolvimento do Windows, mas falhou no servidor Ubuntu / Apache.

Eu estava indo para este mesmo erro depois de ter mudado a ordem desta configuração:

 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', ) 

Colocá-lo de volta no pedido aqui antes e reiniciar o Apache corrigiu o problema.

Isso também pode ser causado por ter uma input duplicada em INSTALLED_APPS

No meu caso, eu tinha uma custom renderer class para o Django Rest Framework , para algum propósito eu tive que sobrescrever o método da class renderer “get_context” (full disclosure: para fazer a django toolbar dar uma contagem correta da query SQL)

Eu removi essa class e reimplantada. Funcionou.

Eu sei que já faz um tempo que essa pergunta foi feita, mas acabei de me deparar com essa questão devido a um problema que não vi discutido aqui. Eu estava recebendo o RuntimeError: populate() isn't reentrant devido ao SELinux no CentOS 7. Eu tinha Django servido fora de um diretório home, e eu simplesmente tinha que habilitar o booleano SELinux que permitia ler diretórios home, como o populate ( ) erro foi devido a um problema de permissions. A solução para mim foi setsebool -P httpd_read_user_content 1 . Espero que isso ajude alguém a ter esse problema.

No meu caso, o erro ocorreu porque faltava um pacote pip necessário.

Então eu fiz um pip install -r requirements.txt , reiniciei o apache e as coisas funcionaram novamente.

No meu caso, eu tinha uma importação circular, que causa um erro que quebra o método popular.

Eu resolvi o problema com a adição de __init__.py à minha pasta de aplicativos.

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

Então funcionou!

Para jogar meus 2 centavos de euro:

Eu recriou uma configuração de trabalho no Docker. A nova configuração do Docker falhou com

 populate isn't reentrant 

o que parece ser um erro genérico. No meu caso, eu esqueci que

 pip install Django 

instala a versão mais recente ( 2.0 ), em vez da versão requerida 1.11 . Mudando isso para

 pip install Django==1.11 

Corrigido meu problema.

Removendo o diretório virtualenv, recriando o virtualenv e, em seguida, reinstalando todos os requisitos, corrigi-lo para mim.

Eu acho que isso é um erro genérico quando algo está errado com settings.py . Às vezes, posso encontrar o problema por tentativa e erro removendo os aplicativos instalados um de cada vez. Em alguns casos, não está relacionado aos aplicativos instalados. Mas pela minha experiência, em todos os casos é um problema dentro do arquivo settings.py .

A multiplicidade de respostas deixa claro; Esse é um erro genérico que pode ter várias causas raiz, geralmente relacionadas ao carregamento do Apache / WSGI.

Todas essas respostas nesta página devem funcionar como um tipo de lista de verificação e, nesse caso, eu quero adicionar a causa raiz da minha instância desse erro: falha ao adicionar um ‘import os’ ao seu arquivo settings.py.

Especificamente, nós tínhamos um desenvolvedor em nossa equipe que pretendia remover um pacote desnecessário e, em vez disso, removemos ‘import os’ do topo do arquivo settings.py de produção. Após um reinício do apache, nosso aplicativo não foi reiniciado e recebemos o erro ‘RuntimeError: populate () is not reentrant’.

Um rápido ‘python manage.py check’ não revelou o problema, mas um ‘python settings.py’ fez; o pacote do os não foi carregado.

Se você tiver este erro, concentre sua pesquisa na verificação de seu (s) arquivo (s) settings.py e também do seu arquivo WSGI.

Este erro também gerou se inconsistência uso de espaço e guia no código.

verifique se você mencionou seus nomes de api duas vezes na seção de aplicativos instalados do settings.py.

Definição de aplicação

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

Definição de aplicação

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

Remover inputs duplicadas resolveu meu problema

Este couse de falta de memory no seu PC / Host / VPS, liberte alguma memory e tudo ficará bem.