web-dev-qa-db-ja.com

AppRegistryNotReady:翻訳インフラストラクチャを初期化できません

アプリにアクセスしようとすると、次のエラーが発生します。

AppRegistryNotReady:アプリレジストリの準備ができるまで、翻訳インフラストラクチャを初期化できません。インポート時に遅延のないgettext呼び出しを行わないことを確認してください

これが私のwsgi.pyファイルです:

"""                                                                                                                                                                                     
WSGI config for Projectizer project.                                                                                                                                                    

It exposes the WSGI callable as a module-level variable named ``application``.                                                                                                          

For more information on this file, see                                                                                                                                                  
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/                                                                                                                            
"""

import os
os.environ.setdefault("Django_SETTINGS_MODULE", "Projectizer.settings")

from Django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

そして、ここにスタックトレースがあります。

mod_wsgi (pid=28928): Exception occurred processing WSGI script '/var/www/projectizer/Apache/Django.wsgi'.

Traceback (most recent call last):

File "/usr/local/lib/python2.7/dist-packages/Django/core/handlers/wsgi.py", line 187, in __call__

    response = self.get_response(request)

File "/usr/local/lib/python2.7/dist-packages/Django/core/handlers/base.py", line 199, in get_response

    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())

File "/usr/local/lib/python2.7/dist-packages/Django/core/handlers/base.py", line 236, in handle_uncaught_exception

    return debug.technical_500_response(request, *exc_info)

File "/usr/local/lib/python2.7/dist-packages/Django/views/debug.py", line 91, in technical_500_response

    html = reporter.get_traceback_html()

File "/usr/local/lib/python2.7/dist-packages/Django/views/debug.py", line 350, in get_traceback_html

    return t.render(c)

File "/usr/local/lib/python2.7/dist-packages/Django/template/base.py", line 148, in render

    return self._render(context)

File "/usr/local/lib/python2.7/dist-packages/Django/template/base.py", line 142, in _render

    return self.nodelist.render(context)

File "/usr/local/lib/python2.7/dist-packages/Django/template/base.py", line 844, in render

    bit = self.render_node(node, context)

File "/usr/local/lib/python2.7/dist-packages/Django/template/debug.py", line 80, in render_node

    return node.render(context)

File "/usr/local/lib/python2.7/dist-packages/Django/template/debug.py", line 90, in render

    output = self.filter_expression.resolve(context)

File "/usr/local/lib/python2.7/dist-packages/Django/template/base.py", line 624, in resolve

    new_obj = func(obj, *arg_vals)

File "/usr/local/lib/python2.7/dist-packages/Django/template/defaultfilters.py", line 769, in date

    return format(value, arg)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/dateformat.py", line 343, in format

    return df.format(format_string)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/dateformat.py", line 35, in format

    pieces.append(force_text(getattr(self, piece)()))

File "/usr/local/lib/python2.7/dist-packages/Django/utils/dateformat.py", line 268, in r

    return self.format('D, j M Y H:i:s O')

File "/usr/local/lib/python2.7/dist-packages/Django/utils/dateformat.py", line 35, in format

    pieces.append(force_text(getattr(self, piece)()))

File "/usr/local/lib/python2.7/dist-packages/Django/utils/encoding.py", line 85, in force_text

    s = six.text_type(s)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/functional.py", line 144, in __text_cast

    return func(*self.__args, **self.__kw)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/translation/__init__.py", line 83, in ugettext

    return _trans.ugettext(message)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/translation/trans_real.py", line 325, in ugettext

    return do_translate(message, 'ugettext')

File "/usr/local/lib/python2.7/dist-packages/Django/utils/translation/trans_real.py", line 306, in do_translate

    _default = translation(settings.LANGUAGE_CODE)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/translation/trans_real.py", line 209, in translation

    default_translation = _fetch(settings.LANGUAGE_CODE)

File "/usr/local/lib/python2.7/dist-packages/Django/utils/translation/trans_real.py", line 189, in _fetch

    "The translation infrastructure cannot be initialized before the "

AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.
21
Alexandre Tea

私は同じエラーに直面しました。以下は私のために働いた。 wsgiファイルの最後の行を次のように変更します。

from Django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

これは、Django 1.6から新しいバージョンに変更されました。 こちら は、 Djangoアプリのデプロイに役立ちました。

NginxをWebサーバーとして使用して、Django app followthispostをデプロイする場合。

30
Ajeet Khan

@hellsgateソリューションは私のために働いた。

具体的には @ hellsgateによって参照されるリンク から、私は変更しました:

module = Django.core.handlers.wsgi:WSGIHandler()

module = Django.core.wsgi:get_wsgi_application()

私のvassals.iniファイル

8
shawn

これはあまり賢くない人(私など)への回答です:明らかなことを確認してください:エラーメッセージは次のとおりです:... Check that you don't make non-lazy gettext calls at import time.したがって、モデルフィールドのverbose_nameまたはその他の部分でDjangoの翻訳を使用する場合インポート時に評価されるため、*_lazyバージョンを使用する必要があります。そうでない場合は、OPで発生したエラーが発生します。

私は基本的に:

from Django.db import models
from Django.utils.translation import gettext as _
import datetime
# other things

class myModle(models.Model):
    date = models.DateField(_('Date'), default=datetime.date.today)
    # other defs. and things

OPと同じエラーが発生しましたが、私のwsgi設定は問題ありませんでした。

私がしなければならなかったのは、gettextgettext_lazy(またはugettextugettext_lazy)に置き換えることだけで、すべて問題ありませんでした。

7
jojo

これは、誤って報告されたバグ https://code.djangoproject.com/ticket/23146 と同じようです。

私もこれに遭遇し、そのリンクで提案された修正がうまくいきました。更新はwsgi.pyファイルで行う必要があります。変更方法がわからない場合は、「wsgi.py」を投稿してください。

4
hellsgate

アプリケーションへのパスの設定が不足している可能性があります。これを私のwsgiファイルで確認してください。より正確なドキュメント herehttps://joshcarllewis.com/articles/getting-started-with-Django が見つかります。それがあなたの問題を解決することを願っています。

import os, sys

sys.path.append('D:/Django/mysite')
os.environ['Django_SETTINGS_MODULE'] = 'mysite.settings'

from Django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
2

その例外の別の考えられる原因を次に示します。nameクラスのAppConfigの翻訳を誤ってapps.pyファイルに追加しました:

class BookConfig(AppConfig):
    name = _('Book')
    verbose_name = _('Book')

見当違いの翻訳を削除した後、すべてが完全に機能し始めました:

class BookConfig(AppConfig):
    name = 'Book'
    verbose_name = _('Book')
1

インストールした「Django」のバージョンを確認できます。

$python -c 'import Django; print (Django.get_version ())'

そのバージョンがプロジェクト「requeriments.txt」を使用していることを確認してください。同じバージョンでない場合は、「Django」をアンインストールし、「requeriments.txt」に設定されているバージョンをインストールする必要があります。

「仮想環境」を使用している場合、間違った「仮想環境」を立てて、Djangoの新しいバージョンをインストールした可能性があります。例えば:

"requeriments.txt"にDjango == 1.6.1と入力します

$python -c 'import Django; print(Django.get_version())' 
1.7.4 
$Sudo pip uninstall Django 
$Sudo pip install Django==1.6.1
0
Baurin Leza

@hellsgateおよび@shawnと同じ答え。交換しなければならなかった

import Django.core.handlers.wsgi
application = Django.core.handlers.wsgi.WSGIHandler()

沿って

from Django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
0
Julien Spronck