Python Django populate()不是可重入的

2024-10-01 17:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目已经运行了好几个月了。今天早上我一直试图在服务器上安装Postfix,但突然发现站点出现错误。这是回溯

mod_wsgi (pid=11948): Target WSGI script '/var/www/zouzoukos/zouzoukos/wsgi.py$
mod_wsgi (pid=11948): Exception occurred processing '/var/www/zouzoukos/zouzoukos/wsgi.py'.
Traceback (most recent call last):
   File "/var/www/zouzoukos/zouzoukos/wsgi.py", line 29, in <module>
     application = get_wsgi_application()
   File "/var/www/zouzoukos/env/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
     django.setup()
   File "/var/www/zouzoukos/env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
     apps.populate(settings.INSTALLED_APPS)
"/var/www/zouzoukos/env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant

问题是,我有几个版本的网站运行其他人,他们仍然很好(这是第一次)。我不知道我需要更新什么才能让它再次工作。在

我试过了this thread里的所有东西,还是什么也没做


Tags: djangoinpyenvwsgiapplicationvarlib
3条回答

这个错误基本上意味着在django能够正确安装已安装的应用程序之前,已经有人试图从Apps类中扰乱app_config有序dict。检查django.apps.registry.Apps#populate,它说:

# 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词典中的内容以获取更多信息。重新开始所有的事情可能会有帮助。在

在我的例子中,我删除了一个仍然在已安装的应用程序中列出的应用程序文件夹后,出现了这个错误。从已安装的应用程序评论了这个应用程序后,一切恢复正常。在

我试过@valentjjedi的方法,然后我累了管理.py得到了一个不同的错误,指示MySQL python问题,所以我卸载并重新安装了它,它工作了

env/bin/pip uninstall mysql-python 
env/bin/pip install mysql-python

相关问题 更多 >

    热门问题