Python 获取错误:django.core.exceptions.AppRegistryNotReady:应用程序不存在';在django rest框架中安装oauth2提供程序时尚未加载

Python 获取错误:django.core.exceptions.AppRegistryNotReady:应用程序不存在';在django rest框架中安装oauth2提供程序时尚未加载,python,django,oauth-2.0,Python,Django,Oauth 2.0,我正在尝试在django中安装django-oauth2-provider。在安装和配置settings.py之后,在迁移过程中,我会遇到如下错误: django.core.exceptions.AppRegistryNotReady:尚未加载应用程序 设置.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'dja

我正在尝试在django中安装django-oauth2-provider。在安装和配置settings.py之后,在迁移过程中,我会遇到如下错误:

django.core.exceptions.AppRegistryNotReady:尚未加载应用程序

设置.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'hello_api',
    'rest_framework.authtoken',
    'provider',
    'provider.oauth2',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    #'corsheaders.middleware.CorsMiddleware',
]
ROOT_URLCONF = 'hello_api2.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
错误回溯:

error: File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute
    django.setup()
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/provider/oauth2/__init__.py", line 1, in <module>
    import backends
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/provider/oauth2/backends.py", line 2, in <module>
    from .forms import ClientAuthForm, PublicPasswordGrantForm
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/provider/oauth2/forms.py", line 10, in <module>
    from .models import Client, Grant, RefreshToken
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/provider/oauth2/models.py", line 23, in <module>
    class Client(models.Model):
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config
    self.check_apps_ready()
  File "/home/ravi/PycharmProjects/hello-api2/venv/local/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.
错误:文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/core/management/_init__.py”,第367行,从命令行执行
utility.execute()
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/core/management/_init__.py”,执行中第341行
django.setup()
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site-packages/django/_-init__;.py”,第27行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/apps/registry.py”,第85行,填充
app_config=AppConfig.create(条目)
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/apps/config.py”,第90行,在create中
模块=导入模块(条目)
文件“/usr/lib/python2.7/importlib/_init_uuu.py”,第37行,在导入模块中
__导入(名称)
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/provider/oauth2/_init__.py”,第1行,在
导入后端
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/provider/oauth2/backends.py”,第2行,在
从.forms导入ClientAuthForm、PublicPasswordGrantForm
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/provider/oauth2/forms.py”,第10行
从.models导入客户端、授权、刷新令牌
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/provider/oauth2/models.py”,第23行
类客户端(models.Model):
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/db/models/base.py”,第105行,新__
app\u config=apps.get\u包含app\u config(模块)
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/apps/registry.py”,第237行,在包含应用程序配置的get_中
self.check_apps_ready()
文件“/home/ravi/PycharmProjects/hello-api2/venv/local/lib/python2.7/site packages/django/apps/registry.py”,第124行,在check_apps_ready中
raise AppRegistryNotReady(“应用程序尚未加载。”)
django.core.exceptions.AppRegistryNotReady:尚未加载应用程序。

您不应该使用django-oauth2-provider,因为它不再维护。上次更新是在3年前

您提供的回溯在Django 1.9+的bug报告中

但是,您可以使用Django OAuth Toolkit,它提供了所有类似和增强的功能,还支持Django>=1.8。有关详细信息,请参阅


为了比较它们,您可以使用。

不要使用
django-oauth2-provider
它已经三年没有更新了,这可能是导致问题的原因。继续寻找满足您需求的新软件包。我很高兴听到并很抱歉,我不知道有什么好的项目可以建议。如果我遇到一个或一个建议,我会更新我的答案。@EmettSpeer有很多。Python social auth就是其中之一。@Ravi你尝试过我的解决方案吗?@EmettSpeer编辑了你的答案。