Python 获取错误:django.core.exceptions.AppRegistryNotReady:应用程序不存在';在django rest框架中安装oauth2提供程序时尚未加载
我正在尝试在django中安装django-oauth2-provider。在安装和配置settings.py之后,在迁移过程中,我会遇到如下错误: django.core.exceptions.AppRegistryNotReady:尚未加载应用程序 设置.pyPython 获取错误: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
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编辑了你的答案。