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.

Ответы

Ответ 1

Я столкнулся с той же ошибкой. Следующее сработало для меня. В вашем файле wsgi измените последнюю строку на:

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

Это было изменено с django 1.6 на более новую версию. Здесь - пост, который помог развернуть приложение django.

Если вы хотите использовать Nginx в качестве веб-сервера для развертывания приложения django, следуйте этой записи.

Ответ 2

Решение @hellsgate работало для меня.

В частности, из ссылки > , на которую ссылается @hellsgate, я изменил:

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

к

module = django.core.wsgi:get_wsgi_application()

в файле vassals.ini

Ответ 3

Это ответ для менее умных (таких как я): Обязательно проверьте очевидное: Сообщение об ошибке гласит: ... Check that you don't make non-lazy gettext calls at import time. Итак, если вы используете перевод django в verbose_name поля модели или в любой другой части, которая является оценивается во время импорта, вам нужно использовать версию *_lazy. Если нет, вы получите ошибку, с которой столкнулся ОП.

У меня в основном было:

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 был в порядке.

Все, что мне нужно было сделать, это заменить gettext на gettext_lazy (или ugettext на ugettext_lazy), и все было хорошо.

Ответ 4

Это похоже на ошибку с неправильным сообщением - https://code.djangoproject.com/ticket/23146.

Я наткнулся на это, и исправление, предложенное в этой ссылке, было разработано для меня. Обновление должно быть сделано в вашем файле wsgi.py. Если вы не знаете, как внести изменения, напишите 'wsgi.py', чтобы я посмотрел

Ответ 5

Возможно, вам не удалось установить путь к вашему приложению. Проверьте этот файл wsgi. Вы найдете более точную документацию здесь https://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()

Ответ 6

Вы можете увидеть, какую версию "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

Ответ 7

Тот же ответ, что и @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()