当前位置: 首页 > 知识库问答 >
问题:

Django填充()不是可重入的

艾泉
2023-03-14

当我试着在生产环境中加载Django应用程序时,我总是会遇到这种情况。我尝试了所有的stackoverflow答案,但都没有解决。还有其他想法吗。(我正在使用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

共有3个答案

景靖琪
2023-03-14

有很多原因会导致populate()不可重入错误。如果您查看注册表。py在您的in-django应用程序中可能位于此目录下

        # 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\u配置应该是原始的。这意味着,如果其中一个配置不正确或缺少所需的库,则会出现此填充错误。我出现这个错误是因为我错过了sqlite安装。正如您所见,在异常中没有提及可能的原因。我通过这个命令在debian上安装了sqlite

pip install pysqlite

它解决了我的问题。我的异常是因为缺少pysqlite。您可能缺少另一个所需的软件包或设置中存在错误。py

融泓
2023-03-14

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

WSGIDaemonProcess ...
WSGIProcessGroup ...

刚刚了解到,您可以运行一个django应用程序,而无需定义它们,但当两个应用程序发生冲突时。

公冶浩慨
2023-03-14

这个RuntimeError在升级到Django 1.7后第一次出现在我身上(Django 1.8仍然存在)。它通常是由Django应用程序引发错误引起的,但该错误以某种方式被吞噬了。

这是一个适合我的解决方法。将其添加到wsgi。应记录py和实际错误:

import os
import time
import traceback
import signal
import sys
from django.core.wsgi import get_wsgi_application

try:
    application = get_wsgi_application()
    print 'WSGI without exception'
except Exception:
    print 'handling WSGI exception'
    # Error loading applications
    if 'mod_wsgi' in sys.modules:
        traceback.print_exc()
        os.kill(os.getpid(), signal.SIGINT)
        time.sleep(2.5)

有关更多详细信息,请参阅modwsgi上的此线程。

 类似资料:
  • 我一直在用WSGI开发部署在Apache服务器上的Django web应用程序,一切都进展顺利。今天,我对我的应用程序的管理做了一些小改动。py试图自定义内置Django管理界面,最初出现语法错误(未闭合的括号)。这意味着当我触摸wsgi时。py并加载了代码(我在虚拟主机上以守护进程模式运行WSGI),我的网站被替换为内部服务器错误,因为WSGI在遇到语法错误时停止。 因此,我修复了语法错误,检查

  • 我正在尝试部署django网站。项目名称是pom。我试图使用apache2在ec2服务器中运行django网站并收到以下错误: Apache错误文件: 我的pom。设置。py如下: wsgi。py文件如下:

  • 问题内容: 当我尝试在生产环境中加载Django应用程序时,我会不断收到此消息。我尝试了所有stackoverflow答案,但没有任何解决方法。还有其他想法。(我正在使用Django 1.5.2和Apache) 问题答案: 我遇到的问题是我尝试运行第二个Django应用程序,而我的apache配置中没有定义以下内容: 你可以运行一个django应用程序而无需定义它们,但是当两个应用程序产生冲突时。

  • 我喜欢用基于其他列的Formel填充列中的空值: 你能看出我的代码有什么问题吗?因为这段代码后面有一些nulll值。 我的数据框: Datadate|datacqtr 2002-02-28|2002Q1 Dataacqtr代表四分之一。有时我有datadate,但没有datacqtr(四分之一)。所以我喜欢填充基于colmn数据的colmn datacqtr。

  • 在Sketch中,每个图层最多可以有4个填充,你可以轻松地将一个半透明的渐变叠加在一个单色填充上面。具体做法是,点击位于第一个颜色填充后面的+按钮来添加第二个填充。你可以来回拖拽它们以重新排列顺序,或者将其拖拽到面板之外来删除它。 想要改变单个填充的颜色属性,点击相应的颜色填充按钮,然后可以修改颜色,也可以切换到渐变填充或图案填充。你可以通过点击每一个填充上面的复选框来禁用单个填充。 为一个图层添

  • 我有一个独特的情况,需要将LiveCycleES4Forms Designer创建的动态表单(XFA PDF)转换为静态表单(普通PDF)。 请注意,正如其他帖子和论坛中提到的,1。我使用了一个打印驱动程序将livecycle表单保存为PDF,但这会使文件扁平化,也就是说,没有一个PDF字段保持为可读字段。2.使用JavaScript使所有字段为“只读”,但仍将保持表单的格式为动态PDF而不是静态