从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.
我修改了'django.contrib.auth&#39;的已安装应用。
答案 0 :(得分:85)
尝试将此行添加到设置文件的顶部:
import django
django.setup()
如果这无法帮助您尝试逐个删除已安装的应用列表中的第三方应用。
答案 1 :(得分:22)
我在我的一个模型__init__.py
文件上写了一个自定义函数。它导致了错误。当我从__init__.py
移动此功能时,它起作用了。
答案 2 :(得分:8)
就我而言,当我在python manage.py makemigrations
上进行Django 2.0.6
时发生了错误。
解决方案是运行python manage.py runserver
并查看实际错误(这只是缺少的环境变量)。
答案 3 :(得分:8)
当您在INSTALLED_APPS
文件中的settings.py
中添加应用但未在计算机中安装该应用时,可能会发生此错误。你有两个解决方案:
Install
该应用使用包管理器,例如ubuntu中的pip
settings.py
文件如果您不在为项目创建的virtual environment
中,也可能出现此错误。
答案 4 :(得分:5)
尝试删除整个<svg viewBox='0 0 100 100'>
<circle cx='0' cy='0' r='50' stroke="#000000"/>
</svg>
dictConfig并重新启动服务器。如果可行,请根据v1.9文档重写设置。
https://docs.djangoproject.com/en/1.9/topics/logging/#examples
答案 5 :(得分:5)
我的问题是我在调用import django
django.setup()
from myapp.models import MyModel
这对我有用:
{{1}}
以上脚本位于项目根文件夹中。
答案 6 :(得分:4)
对我来说,问题来自于我在INSTALLED_APPS
中导入了一个应用程序,该应用程序本身在其__init__.py
文件中导入模型
我有:
settings.py
INSTALLED_APPS = [
...
'myapp',
...
]
myapp.__init__.py
from django.contrib.sites.models import Site
在import models
中评论myapp.__init__.py
使其有效:
# from django.contrib.sites.models import Site
答案 7 :(得分:2)
让我评论
'grappelli.dashboard',
'grappelli',
在INSTALLED_APPS工作
答案 8 :(得分:2)
当我尝试运行test.py
时出现错误(不是完整的脚本,我不想使用python manage.py test
)
以下方法对我有用。
import os
import django
if 'env setting':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YourRoot.settings')
django.setup()
from django.test import TestCase
...
class SomeTest(TestCase):
def test_one(self): # <-- Now, I can run this function by PyCharm
...
def test_two(self):
...
答案 9 :(得分:1)
django.setup()将不起作用。 当我将其添加到设置文件底部时,我的问题就解决了
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
if BASE_DIR not in sys.path:
sys.path.append(BASE_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = "igp_lrpe.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "igp_lrpe.settings")
import django
django.setup()
答案 10 :(得分:1)
在导入任何模型之前首先导入并运行 django.setup()
以上所有答案都很好,但一个人可能会犯的一个简单错误是(实际上在我的情况下是这样)。
在调用 django.setup()
之前,我从我的应用程序中导入了 Django 模型。所以正确的方法是做...
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
答案 11 :(得分:1)
当我将django版本更改为1.9时,它不会出现错误。
pip uninstall django
pip install django==1.9
答案 12 :(得分:1)
对于不正确的settings.py,也会发现此问题导致错误地写入INSTALLED_APPS,请验证您是否正确包含了应用并使用&#34;,&#34;
答案 13 :(得分:1)
我的问题是: django的返原&GT = 1.8.7,&LT; 1.9
对于django 1.9.7你应该使用: django的返原== 1.10.0
我将django-cms 3.2升级到3.3,并通过评论应用程序找到它,然后取消注释。
这里的答案是正确的: https://stackoverflow.com/a/34040556/2837890
答案 14 :(得分:0)
我遇到了这个问题,它源于 asgi.py。我们已经加载了以下模块:
from channels.auth import AuthMiddlewareStack
但我们没有在 ProtocolTypeRouter 中使用它。显然,我们必须使用 当我们调用 AuthMiddlewareStack 模块时使用 websocket 或其他协议。
答案 15 :(得分:0)
对于将来可能会遇到此问题的其他人:
如果您在运行 Python 3.8 并尝试使用多处理包时遇到此问题,很可能是因为子处理是“生成”而不是“分叉”。这是 Mac OS 上 Python 3.8 的更改,其中默认进程启动方法从“fork”更改为“spawn”。 这是与 Django 的 known issue。
绕过它:
import multiprocessing as mp
mp.set_start_method('fork')
答案 16 :(得分:0)
如果您错误地启动了普通的 Python shell 并试图在其中导入您的 Django 模型,您可能会收到此错误。
您应该改为使用 shouldDisplayTitle
。
答案 17 :(得分:0)
当我尝试运行时收到该错误:
python manage.py makemigrations
我尝试了很多事情,并意识到我为“ settings.py”-“ INSTALLED_APPS”添加了一些引用
请确保您在此处写的内容正确无误。我的错误是“ .model”。而不是“ .app”。
更正了该错误,现在可以正常工作。
答案 18 :(得分:0)
尝试访问apps.py
中的模型对象时遇到此错误:
class QuizConfig(AppConfig):
name = 'quiz'
def ready(self):
print('===============> Django just started....')
questions_by_category = Question.objects.filter(category=2) # <=== Guilty line of code.
在应用程序加载模型类之前尝试访问Question
对我造成了错误。
答案 19 :(得分:0)
我认为这还没有提到,但这是错误的常见原因:当您指定使用模型的启动代码时会发生错误。如果您遵循 this 方法并将其放入您的 AppConfig
,您不得在文件顶部导入模型,而是在 ready()
方法内部。例如如下:
# works as models are imported in the ready() method
from django.apps import AppConfig
class MatcherConfig(AppConfig):
name = 'matcher'
verbose_name = 'Match-Making'
def ready(self):
from matcher.background_tasks import close_timeout_games
from matcher.models import FourPlayerGame
# check if a player is not responding every 5 seconds
close_timeout_games(FourPlayerGame, repeat=5)
但是,以下内容是错误的:
# won't work as models are imported at the beginning
from django.apps import AppConfig
from matcher.background_tasks import close_timeout_games
from matcher.models import FourPlayerGame
class MatcherConfig(AppConfig):
name = 'matcher'
verbose_name = 'Match-Making'
def ready(self):
# check if a player is not responding every 5 seconds
close_timeout_games(FourPlayerGame, repeat=5)
有关详细信息,另请参阅 this 答案。
答案 20 :(得分:0)
我尝试了很多事情,但是只有将Django降级到1.8.18才为我解决了这个问题:
pip install django==1.8.18
这是已安装的失败应用程序之一,但我找不到哪个。
答案 21 :(得分:0)
正如其他人所说,这可能是由于您未安装INSTALLED_APPS
中列出的应用程序引起的。
在我的情况下,manage.py
尝试记录该异常,这导致呈现该异常的尝试失败,原因是该应用尚未初始化。通过
注释掉except
中的manage.py
子句,无需特殊渲染即可显示异常,从而避免了令人困惑的错误。
# 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
答案 22 :(得分:0)
在我的情况下,我的设置之一是在settings.py文件中设置了“ CORS_ORIGIN_WHITELIST”,但在我的.env文件中不可用。因此,建议您检查设置,尤其是链接到.env
的设置答案 23 :(得分:0)
我将User
导入到settings
文件中以管理其余的调用令牌,如下所示
# 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
放在函数中,它开始工作。在服务器启动后需要调用该函数
答案 24 :(得分:-1)
尝试激活虚拟环境。 就我而言,使用git命令行工具:
source scripts/activate
解决我的问题。
答案 25 :(得分:-1)
晚会,但grappelli也是我错误的原因。我查看了pypi上的兼容版本并为我修复了它。
答案 26 :(得分:-2)
在应用包的“admin”模块中,注册在包的“models”模块中创建的所有数据库。
假设您在“models”模块中定义了一个数据库类:
class myDb1(models.Model):
someField= models.Charfiled(max_length=100)
因此您必须在管理模块中将其注册为:
from .models import myDb1
admin.site.register(myDb1)
我希望这可以解决错误。
答案 27 :(得分:-2)
如果你的setting.py文件填写正确,你可以尝试到达manage.py文件,在main方法中调用danjgo.setup()。然后运行manage.py,最后再次运行项目,问题可能会消失。