首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django populate()不是可重入的

Django populate()不是可重入的
EN

Stack Overflow用户
提问于 2015-06-20 21:11:37
回答 4查看 35.1K关注 0票数 35

当我试图在生产环境中加载我的Django应用程序时,我一直收到这个消息。我尝试了所有堆栈溢出的答案,但没有修复它。有没有其他想法。(我使用的是Django 1.5.2和Apache)

代码语言:javascript
复制
 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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-24 21:10:02

最后,我遇到的问题是,我试图运行第二个Django应用程序,但在我的apache配置中没有定义以下内容:

代码语言:javascript
复制
WSGIDaemonProcess ...
WSGIProcessGroup ...

我刚刚了解到,您可以运行单个django应用程序,而无需定义它们,但当它是两个应用程序时,就会产生冲突。

票数 6
EN

Stack Overflow用户

发布于 2017-02-16 17:36:01

导致populate() isn't reentrant错误的原因有很多。如果您查看您的django应用程序中的registry.py,可能位于此目录中

/python2.7/site-packages/django/apps

代码语言:javascript
复制
        # 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

代码语言:javascript
复制
pip install pysqlite

它解决了我的问题。我的异常是因为丢失了pysqlite.Your,可能丢失了另一个必需的包或settings.py中的错误

票数 3
EN

Stack Overflow用户

发布于 2018-05-23 22:49:04

完全公开- "populate() is isn reentrant“错误可能有多种原因,检查最近的配置或程序更改是一个非常好的主意。

但是,当更新Apache,并且模块不再有效/已损坏/需要刷新时,也会发生此错误。在Apache更新之后,这在我们的网络派别中发生了(但在任何主机上都可能发生)。

使用Apache重新启动脚本不会对此有所帮助,因为模块在重新启动时仍处于加载状态。这可能会有所帮助,这取决于您的系统,以及即使在Apache关闭时mods是否被缓存。

完全停止阿帕奇。在网络派别上,也就是:

代码语言:javascript
复制
~/webapps/<YOUR WEB APP>/apache2/bin/stop

等几秒钟然后..。

代码语言:javascript
复制
~/webapps/<YOUR WEB APP>/apache2/bin/start

这应该会纠正这个问题。如果您的系统缓存了mods,您可能需要在启动之前刷新缓存。

希望这能有所帮助!

这是他们给我的链接(我知道错误是不同的,但我们发生这种情况的原因也是相同的,填充错误也是如此):

https://statusblog.webfaction.com/2018/05/16/regarding-glibc_private-errors-in-your-python-application/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30954398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档