Python Django升级到1.9错误“;AppRegistryNotReady:应用程序不可用;“我还没装。”;
从1.8升级到django 1.9时,我遇到了这个错误。我检查了类似问题的答案,但我不认为这是任何第三方软件包或应用程序的问题Python Django升级到1.9错误“;AppRegistryNotReady:应用程序不可用;“我还没装。”;,python,django,Python,Django,从1.8升级到django 1.9时,我遇到了这个错误。我检查了类似问题的答案,但我不认为这是任何第三方软件包或应用程序的问题 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packa
Traceback (most recent call last):
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 342, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 176, in fetch_command
commands = get_commands()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/utils/lru_cache.py", line 100, in wrapper
result = user_function(*args, **kwds)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 71, in get_commands
for app_config in reversed(list(apps.get_app_configs())):
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
self.check_apps_ready()
File "/home/kishore/.virtualenvs/andone/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”,第10行,从命令行执行(sys.argv)
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/core/management/_init__.py”,第350行,从命令行执行
utility.execute()
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/core/management/_init__.py”,执行中第342行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/core/management/_init__.py”,第176行,在fetch_命令中
commands=get_commands()
包装器中的文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/utils/lru_cache.py”,第100行
结果=用户函数(*args,**kwds)
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/core/management/_init__.py”,第71行,在get_命令中
对于反向中的应用程序配置(列表(apps.get\u app\u configs()):
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/apps/registry.py”,第137行,在get\u app\u configs中
self.check_apps_ready()
文件“/home/kishore/.virtualenvs/andone/local/lib/python2.7/site packages/django/apps/registry.py”,第124行,在check\u apps\u ready中
raise AppRegistryNotReady(“应用程序尚未加载。”)
django.core.exceptions.AppRegistryNotReady:尚未加载应用程序。
我已为“django.contrib.auth”修改了已安装的应用程序。尝试将以下行添加到设置文件的顶部:
import django
django.setup()
如果这对您尝试从已安装的应用程序列表中逐个删除第三方应用程序没有帮助。我希望在我的一个模型
\uuuu init\uuuuuuuuy.py
文件中编写一个自定义函数。这是导致错误的原因。当我将此函数从\uuu init\uuuuuy.py
移动时,它起作用了。尝试删除整个设置。记录日志
dictConfig并重新启动服务器。如果可行,请根据v1.9文档重写设置
对于我的评论
'grappelli.dashboard',
'grappelli',
在已安装的应用程序运行时我的问题是:
django reversion>=1.8.7,当您在
settings.py
文件的INSTALLED\u APPS
中添加应用程序,但您的计算机中未安装该应用程序时,可能会发生此错误。您有两种解决方案:
使用ubuntu中的包管理器(如pip
)安装该应用程序
settings.py
文件中注释掉已安装的应用程序如果您不在为项目创建的
虚拟环境中,也可能会出现此错误。设置不一致时也会出现此问题。py如果未正确写入已安装的应用程序,请验证您是否正确包含应用程序并用“,”分隔.如果您的设置.py文件填充正确,您可以尝试在main方法中调用danjgo.setup()来管理.py文件。然后运行manage.py,最后再次运行project,问题可能会消失。在应用程序包的“管理”模块中,注册在应用程序包的“模型”模块中创建的所有数据库
假设在“模型”模块中有一个数据库类定义为:
class myDb1(models.Model):
someField= models.Charfiled(max_length=100)
from .models import myDb1
admin.site.register(myDb1)
因此,您必须在管理模块中将其注册为:
class myDb1(models.Model):
someField= models.Charfiled(max_length=100)
from .models import myDb1
admin.site.register(myDb1)
我希望这能解决错误。对我来说,问题是因为我在已安装的\u APPS
中导入了一个应用程序,而该应用程序本身在其\uu init\uuuuuuuy.py
文件中导入了一个模型
我有:
settings.py
INSTALLED_APPS = [
...
'myapp',
...
]
from django.contrib.sites.models import Site
myapp.\uuuuu init\uuuuuuuuuuuuuy.py
INSTALLED_APPS = [
...
'myapp',
...
]
from django.contrib.sites.models import Site
在myapp中注释掉import models
。\uuuuu init\uuuuuuuuuuy
使其工作:
# from django.contrib.sites.models import Site
晚会迟到了,但格斗也是我犯错的原因。我在pypi上查找了兼容版本,这为我修复了它。当我将django版本更改为1.9时,不会出现错误。
pip卸载django
pip安装django==1.9
我将用户
导入到设置
文件中,以便像这样管理rest调用令牌
# settings.py
from django.contrib.auth.models import User
def jwt_get_username_from_payload_handler(payload):
....
JWT_AUTH = {
'JWT_PAYLOAD_GET_USERNAME_HANDLER': jwt_get_username_from_payload_handler,
'JWT_PUBLIC_KEY': PUBLIC_KEY,
'JWT_ALGORITHM': 'RS256',
'JWT_AUDIENCE': API_IDENTIFIER,
'JWT_ISSUER': JWT_ISSUER,
'JWT_AUTH_HEADER_PREFIX': 'Bearer',
}
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
}
因为在那一刻,Django libs还没有准备好。因此,我将import
放在函数中,它就开始工作了。该函数需要在服务器启动后调用我的问题是,在调用Django.setup()之前,我试图导入一个Django模型
这对我很有用:
import django
django.setup()
from myapp.models import MyModel
上述脚本位于项目根文件夹中。尝试激活虚拟环境。
在我的例子中,使用git命令行工具:
source scripts/activate
解决了我的问题。在我的情况下,我的一个设置“CORS\u ORIGIN\u WHITELIST”已在settings.py文件中设置,但在我的.env文件中不可用。因此,我建议您检查您的设置,特别是那些链接到.env的设置。在我的例子中,错误发生在我在Django 2.0.6
上进行python manage.py makemigrations
时
解决方案是运行python manage.py runserver
并查看实际错误(这只是一个缺少的环境变量)。正如其他人所说,如果您未安装已安装的应用程序中列出的应用程序,则可能会导致此问题
在我的例子中,manage.py
试图记录异常,这导致尝试呈现异常,但由于应用程序尚未初始化而失败。通过
注释掉manage.py
中的except
子句,异常显示时没有特殊渲染,避免了混淆错误
# Temporarily commenting out the log statement.
#try:
execute_from_command_line(sys.argv)
#except Exception as e:
# log.error('Admin Command Error: %s', ' '.join(sys.argv), exc_info=sys.exc_info())
# raise e
我尝试了很多方法,但仅将Django降级到1.8.18就解决了这个问题:
pip install django==1.8.18
这是一个已安装的应用程序出现故障,但我找不到哪个应用程序。django.setup()在运行脚本时无法正常运行
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings')
import django
django.setup()
from faker import Faker
import random
# import models only after calling django.setup()
from first_app.models import Webpage, Topic, AccessRecord
from channels.auth import AuthMiddlewareStack
import multiprocessing as mp
mp.set_start_method('fork')