【问题标题】:Apps not ready yet, upgrading to Django 1.9 and then to 2.0应用程序尚未准备好,升级到 Django 1.9,然后升级到 2.0
【发布时间】:2018-09-14 07:54:30
【问题描述】:

我正在尝试将我的 Django 项目升级到 Django 2.0,目前版本是 1.8.19。我想我会一步一步地做,首先升级到 1.9,然后升级到 1.10,依此类推直到 2.0。问题是我收到错误消息

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 302, in execute
    settings.INSTALLED_APPS
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/conf/__init__.py", line 55, in __getattr__
    self._setup(name)
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/conf/__init__.py", line 99, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/riddle/tmp1/example-project/app/ad_akumuliatoriai_lt/settings.py", line 140, in <module>
    from apps.frontend.ad_akumuliatoriai.models import Language
  File "/home/riddle/tmp1/example-project/app/apps/frontend/ad_akumuliatoriai/models.py", line 5, in <module>
    from ordered_model.models import OrderedModel
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/ordered_model/models.py", line 20, in <module>
    class OrderedModelBase(models.Model):
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/db/models/base.py", line 94, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/site-packages/django/apps/registry.py", line 239, in get_containing_app_config
    self.check_apps_ready()
  File "/home/riddle/tmp1/example-project/env/lib/python3.6/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 upgrading to 1.9 error "AppRegistryNotReady: Apps aren't loaded yet."

我尝试过使用

import django
django.setup()

在我的 settings.py 文件的顶部没有运气。

我假设问题出在第三方应用程序上。 我的主要问题是,如何开始检查无效的第三方应用程序,因为将它们一一注释掉并不能消除错误。我检查了我通过 pip 文档安装的每个应用程序,并添加了所需的行 到 settings.py 中的 INSTALLED_APPS。 django-jquery, django-libsass, django-ordered-model 似乎有些包已经有几年没有开发了,但是根据 django==1.9 的发布日期,这些应用程序应该可以在 django==1.9 上运行(或者也许这是我的想法的错误?)。

如果需要,我准备发布我的项目的更多信息。

我的 settings.py 片段:

INSTALLED_APPS = (
    'hvad',
    'compressor',
    'filebrowser',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'jquery',
    'tinymce',
    'apps.frontend.ad_akumuliatoriai',
    'ordered_model',
    'geoposition',
)

“pip freeze”的输出:

Django==1.9
django-appconf==1.0.2
django-compressor==2.2
django-filebrowser-no-grappelli==3.7.4
django-geoposition==0.3.0
django-hvad==1.8.0
django-jquery==3.1.0
django-libsass==0.7
django-ordered-model==1.4.3
django-tinymce==2.7.0
libsass==0.14.2
Pillow==5.1.0
psycopg2==2.7.4
pytz==2018.3
rcssmin==1.0.6
rjsmin==1.0.12
six==1.11.0

【问题讨论】:

  • django.setup() 用于独立脚本。你不应该把它放在设置中。我总是想知道为什么人们试图将其添加到设置中。也许是您链接到的the question

标签: python django


【解决方案1】:

回溯表明您正在 settings.py 中导入模型:

from apps.frontend.ad_akumuliatoriai.models import Language

你不应该这样做。删除导入。

【讨论】:

    猜你喜欢
    • 2016-03-06
    • 2016-03-10
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2017-12-02
    相关资源
    最近更新 更多