当我试图将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
在升级到Django 1.7之后,第一次出现这个运行时错误(Django 1.8仍然存在)。它通常是由Django应用程序引起的,该应用程序会引发一个错误,但该错误会以某种方式被忽略。
这是一个对我有效的解决方法。将其添加到wsgi.py中,应记录real错误:
有关详细信息,请参见modwsgi上的this thread。
最后,我遇到的问题是,我试图运行第二个Django应用程序,但在我的apache配置中没有定义以下内容:
刚刚了解到,你可以运行一个django应用程序而不必定义它们,但当它的两个应用程序产生冲突时。
会有很多原因导致
populate() isn't reentrant
错误。如果您查看in django应用程序中的registry.py
可能在这个目录中正如你在评论中看到的,它说app_config应该是原始的。这意味着,如果其中一个配置不正确或缺少必需的库,则会引发此填充错误。我得到这个错误是因为我错过了sqlite安装。即使如您所见,在异常中也没有提到可能的原因。我通过这个命令在debian上安装了sqlite
它解决了我的问题。我的异常是因为缺少pysqlite。您的
settings.py
中可能缺少其他必需的包或错误相关问题 更多 >
编程相关推荐