django:django.core.exceptions.AppRegistryNotReady:应用程序尚未加载
当我想今天在服务器上部署django项目时,我遇到了这个过程。当我运行python manage.py runserver
服务器上,终端显示我:django:django.core.exceptions.AppRegistryNotReady:应用程序尚未加载
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 177, in fetch_command
commands = get_commands()
File "/usr/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
result = user_function(*args, **kwds)
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 72, in get_commands
for app_config in reversed(list(apps.get_app_configs())):
File "/usr/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
self.check_apps_ready()
File "/usr/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
服务器上的Django的版本是1.8.5,而当地是1.8.1。我怀疑版本可能会导致此问题。但我也怀疑wsgi.py
没有正确地编写,这里的wsgi.py
:
import os
import sys
path = '/Users/Peterhon/Desktop/dict/'
if path not in sys.path:
sys.path.append(path)
os.chdir(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")
import django
django.setup()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
这里的manage.py
文件:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.arg)
当我运行在服务器上的python manage.py检查,输出低于:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
任何人都可以给我一些提示吗?谢谢太多
这可能是您的Django设置的问题。例如,我刚刚在LOGGING
中指定了一个不存在的目录中的文件名。只要我将其更改为现有目录,问题就解决了。
有一个问题,当mysql运行'python manage.py检查'得到的图书馆没有加载:/usr/local/lib/libmysqlclient.18.dylib但是'python manage.py runserver'给出的应用程序未加载错误,因此它看起来像设置或配置的任何问题可能会导致此错误。 – PhoebeB
./manage.py runserver
将使用你的wsgi.py
但是它看起来像你在顶部显示的堆栈轨迹不包括wsgi文件。因此,错误发生在wsgi文件加载之前。
我无法重新创建错误,但由于您似乎正在使用新样式的wsgi,并且您提到“服务器上的django版本为1.8.5,本地为1.8.1”,因此,我想知道您的环境中是否有可能出现问题。
我的建议步骤是:
- 重建你的virtualenv。删除env文件夹并使用
pip install -r requirements.txt
或类似软件重新安装。 - 查看关于StackOverflow的其他问题 - 这似乎是一个常见问题。 E.g如上:Django 1.7 throws django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet
希望有更多经验的人可以添加建议。对不起,我没有给你明确的答案。
'raise AppRegistryNotReady(“应用程序尚未加载。”)'它显然听起来像一个其他错误比模型尚未加载... – christophe31
今天我遇到了这个问题。 INSTALLED_APPS中有一个应用程序不存在。一旦它被移除,它解决了异常。无法以任何理由导入的应用程序也会引发AppRegistryNotReady异常。
或INSTALLED_APP无法正常工作正确... – zypro
有可以在你的settings.py文件的问题。具体来说,INSTALLED_APPS确认您是否正确地包含了应用程序并以“,”分隔。
你的'manage.py'文件是什么样的?你有没有定制它? – jamesc
你从系统检查得到的输出是什么? 'python manage.py check' – jamesc
@jamesc我没有定制'manage.py'文件。 :-( –