当我试图在生产环境中加载我的Django应用程序时,我一直收到这个消息。我尝试了所有堆栈溢出的答案,但没有修复它。有没有其他想法。(我使用的是Django 1.5.2和Apache)
Traceback (most recent call last):
File "/var/www/thehomeboard/wwwhome/wsgi.py", line 37, in <module>
application = get_wsgi_application()
File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application
django.setup()
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 78, in populate
raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant发布于 2015-06-24 21:10:02
最后,我遇到的问题是,我试图运行第二个Django应用程序,但在我的apache配置中没有定义以下内容:
WSGIDaemonProcess ...
WSGIProcessGroup ...我刚刚了解到,您可以运行单个django应用程序,而无需定义它们,但当它是两个应用程序时,就会产生冲突。
发布于 2017-02-16 17:36:01
导致populate() isn't reentrant错误的原因有很多。如果您查看您的django应用程序中的registry.py,可能位于此目录中
/python2.7/site-packages/django/apps
# app_config should be pristine, otherwise the code below won't
# guarantee that the order matches the order in INSTALLED_APPS.
if self.app_configs:
raise RuntimeError("populate() isn't reentrant")正如你在评论中看到的,它说app_config应该是原始的。这意味着如果其中一个配置不正确或缺少所需的库,它将引发此填充错误。我得到这个错误是因为我错过了sqlite安装。即使如您所见,在异常中也没有提到可能的原因。我在debian上用这个命令安装了sqlite
pip install pysqlite它解决了我的问题。我的异常是因为丢失了pysqlite.Your,可能丢失了另一个必需的包或settings.py中的错误
发布于 2018-05-23 22:49:04
完全公开- "populate() is isn reentrant“错误可能有多种原因,检查最近的配置或程序更改是一个非常好的主意。
但是,当更新Apache,并且模块不再有效/已损坏/需要刷新时,也会发生此错误。在Apache更新之后,这在我们的网络派别中发生了(但在任何主机上都可能发生)。
使用Apache重新启动脚本不会对此有所帮助,因为模块在重新启动时仍处于加载状态。这可能会有所帮助,这取决于您的系统,以及即使在Apache关闭时mods是否被缓存。
完全停止阿帕奇。在网络派别上,也就是:
~/webapps/<YOUR WEB APP>/apache2/bin/stop等几秒钟然后..。
~/webapps/<YOUR WEB APP>/apache2/bin/start这应该会纠正这个问题。如果您的系统缓存了mods,您可能需要在启动之前刷新缓存。
希望这能有所帮助!
这是他们给我的链接(我知道错误是不同的,但我们发生这种情况的原因也是相同的,填充错误也是如此):
https://stackoverflow.com/questions/30954398
复制相似问题