Djangoを1.9エラーにアップグレードします「AppRegistryNotReady:アプリはまだロードされていません。」


93

1.8からdjango1.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」のインストール済みアプリを変更しました。


1
サードパーティのアプリを使用していますか?settings.pyを共有してください
utkbansal 2015

多くのサードパーティアプリを使用していますが、このエラーは「django / apps / Registry.py」から発生し、サイトパッケージ内の他のアプリからは発生しないと思います。
Kishore K 2015

1
ibraryはまだ1.9をサポートしていないため、django-crispy-formsで同様の問題に直面しました。したがって、これはサポートされていないアプリである可能性があります。
utkbansal 2015

1
私はそのパッケージを使用していません。申し訳ありませんが、私が間違っている場合、それがいずれかのパッケージに関連している場合、トレースはサイトパッケージ内のそのアプリを指しているでしょう?
Kishore K 2015

同じpayuは1.9をサポートしていません
GrvTyagi 2016年

回答:


125

設定ファイルの先頭に次の行を追加してみてください。

import django
django.setup()

それでも問題が解決しない場合は、インストール済みのアプリリストからサードパーティのアプリケーションを1つずつ削除してみてください。


8
試してみましたが、「django.core.exceptions.ImproperlyConfigured:SECRET_KEY設定を空にすることはできません」というエラーが表示されました。設定ファイルにSECRET_KEYがありますが。
Kishore K 2015

11
SECRET_KEYを宣言してみ前に言及したライン、のようなもの:SECRET_KEY =それは:)別のエラーになりました....私のために働いたジャンゴdjango.setup()「MY SECRET KEY」インポート
ドゥダノゲイラ

1
これは、「スタンドアロンスクリプトからDjangoモデルオブジェクトにアクセスするにはどうすればよいですか?」という質問に対する優れた回答です。:-)上記のコードを実行する前に、次のことを行う必要があります:os.environ.setdefault( "DJANGO_SETTINGS_MODULE"、 "your.settings")ただし。
AdvilUser 2016

1
設定では機能しませんでしたが、スタンドアロンスクリプトでは機能します。この例外は、スタンドアロンのPythonスクリプトでdjango.setup()を呼び出すのを忘れた場合にも発生します。docs.djangoproject.com/en/1.10/ref/applications/...
アンドレ・ドゥアルテ

30
django.setup()スタンドアロンスクリプトで使用するためのものです。設定に入れてはいけません
Alasdair 2018

37

モデル__init__.pyファイルの1つにカスタム関数を記述します。エラーの原因でした。この関数をそこから移動すると、機能し__init__.pyました。


3
ここでも同じですが、移動も修正されました。
Brachamul 2015

このファイルのコメントアウトされた関数もこのエラーを引き起こす可能性があることに注意してください。
B-Tron

25

私の問題は、呼び出す前にDjangoモデルをインポートしようとしたことでした django.setup()

これは私のために働いた:

import django
django.setup()

from myapp.models import MyModel

上記のスクリプトは、プロジェクトのルートフォルダーにあります。


スクリプトを実行しているときにこの問題に直面していましたが、これで解決しました。
ほぼ初心者の

14

私の場合、作成時にエラーが発生しました python manage.py makemigrationsしたたDjango 2.0.6

解決策は、実行python manage.py runserverして実際のエラー(環境変数が欠落しているだけ)を確認することでした。


13

このエラーはINSTALLED_APPSsettings.pyファイルにアプリを追加しているが、そのアプリがコンピューターにインストールされていない場合に発生する可能性があります。2つの解決策があります。

  1. Install のようなパッケージマネージャーを使用するそのアプリ pipUbuntuの
  2. または、インストールされているアプリをsettings.pyファイルにコメントアウトします

このエラーはvirtual environment、プロジェクト用に作成した可能性のある自分の中にいない場合にも発生する可能性があります。


5

settings.LOGGINGdictConfig全体を削除して、サーバーを再起動してみてください。それが機能する場合は、v1.9のドキュメントに従って設定を書き直してください。

https://docs.djangoproject.com/en/1.9/topics/logging/#examples


それがうまくいったありがとう。私にとっては、WindowsでLinuxの設定ファイルを使用していました。したがって、/var/logこのエラーを発生させたログファイルパスdintが存在します
pratibha 2018年

5

私にとって、問題は、INSTALLED_APPSそれ自体がモデルをインポートしているアプリをインポートしていたという事実から来ました。__init__.pyファイル内の

私が持っていた:

settings.py

INSTALLED_APPS = [
    ...
    'myapp',
    ...
]

myapp.__init__.py

from django.contrib.sites.models import Site

コメントアウトして動作import modelsmyapp.__init__.pyせました:

# from django.contrib.sites.models import Site

私も同様の問題を抱えています。しかし、私の場合はインポートが必要です。どうしますか?
JohnnyQ

initからモデルをインポートしないように、いつでもリファクタリングできます。確実に機能するオプションは、アプリをインポートするファイルをリファクタリングすることですが、かなり大きな変更になる可能性があります。結局、それは私がしなければならなかったことです!
Albyorix

@JohnnyQと同じ問題。1.8では正常に動作しますが、1.9では機能しません。どこかに関連するドキュメントはありますか?例外は、私の場合はdjango.contrib.auth.modelsからユーザーをインポートしたために発生します
Vinod

ここにある別の質問でこれについて質問しましたstackoverflow.com/questions/59927122/…そして答えを得ました。要旨、リファクタリング以外の方法はありません
Vinod

4

スクリプトを明示的に実行している間は、上部の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()

私はPycharmシェルとタイプimport djangoとを使用しますdjango.setup()。問題は解決しました。
Seyed Hasan Mousavi

2

私にとってはコメントアウト

'grappelli.dashboard',
'grappelli',

INSTALLED_APPSで機能しました


私にとっては、私が誤っていただけのことだった'one_third_pary_app,'の代わりに、'one_third_pary_app',(の位置に注意してください,
J0ANMM

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):
        ...

1

私の問題は:django-reversion> = 1.8.7、<1.9

django 1.9.7の場合は、次を使用する必要があります:django-reversion == 1.10.0

django-cms 3.2から3.3にアップグレードし、アプリにコメントしてからコメントを外して見つけました。

ここで正解:https//stackoverflow.com/a/34040556/2837890


1

この問題は、INSTALLED_APPSを誤って書き込んだための不整合なsettings.pyでも観察され、アプリが正しく含まれ、「、」で区切られているかどうかを確認します。


1

djangoのバージョンを1.9に変更しても、エラーは発生しません。 pip uninstall django pip install django==1.9


1

このように残りの呼び出しトークンを管理するためUsersettingsファイルにインポートを入れました

# 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ライブラリはまだ準備ができていないためです。そのため、import関数の中に入れて動作し始めました。サーバーの起動後に関数を呼び出す必要があります


0

私の場合、設定の1つである「CORS_ORIGIN_WHITELIST」がsettings.pyファイルで設定されましたが、.envファイルでは使用できませんでした。したがって、設定、特に.envにリンクされている設定を確認することをお勧めします。


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

0

たくさんのことを試しましたが、Djangoを1.8.18にダウングレードするだけで、この問題が修正されました。

pip install django==1.8.18

インストールされているアプリの1つで失敗していますが、どれが見つかりませんでした。


0

実行しようとすると、そのエラーが発生します。

python manage.py makemigrations

たくさんのことを試しましたが、「settings.py」への参照をいくつか追加したことに気付きました-「INSTALLED_APPS」

そこに書いたものが正しいことを確認してください。私の間違いは「.model」でした。「.app」の代わりに

その間違いを修正し、現在機能しています。


-1

パーティーに遅れましたが、グラッペリも私の間違いの原因でした。pypiで互換性のあるバージョンを調べたところ、修正されました。



-1

でモデルオブジェクトにアクセスしようとしたときにこのエラーが発生しました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アプリがモデルクラスをロードする前にアクセスしようとすると、エラーが発生しました。


QuestionこのAppConfigのmodels.pyで定義されているモデルはありますか?
Gustavo_fringe

はい、それはそこで定義されています
Ojonugwa JudeOchalifu19年

-2

settings.pyファイルの入力が正しい場合は、manage.pyファイルにアクセスして、mainメソッドでdanjgo.setup()を呼び出してください。次にmanage.pyを実行し、最後にプロジェクトを再度実行すると、問題が解消される可能性があります。


-2

アプリパッケージの「admin」モジュールで、パッケージの「models」モジュールで作成されたすべてのデータベースを登録してください。

「models」モジュールで次のように定義されたデータベースクラスがあるとします。

class myDb1(models.Model):
    someField= models.Charfiled(max_length=100)

したがって、これを管理モジュールに次のように登録する必要があります。

from .models import myDb1
admin.site.register(myDb1)

これでエラーが解決することを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.