Skip to main content
 首页 » 编程设计

python之应用程序还没有准备好,升级到 Django 1.9 然后到 2.0

2024年09月07日34jirigala

我正在尝试将我的 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 

请您参考如下方法:

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

from apps.frontend.ad_akumuliatoriai.models import Language 

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