Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django升级到1.9错误“;AppRegistryNotReady:应用程序不可用;“我还没装。”;_Python_Django - Fatal编程技术网

Python Django升级到1.9错误“;AppRegistryNotReady:应用程序不可用;“我还没装。”;

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

从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-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')