traducir googletrans google python django django-i18n

python - googletrans - AppRegistryNotReady: la infraestructura de traducción no se puede inicializar



python traducir (7)

Cuando intento acceder a mi aplicación, aparece el siguiente error.

AppRegistryNotReady: la infraestructura de traducción no se puede inicializar antes de que el registro de aplicaciones esté listo. Comprueba que no hagas llamadas no perezosas de gettext en el momento de la importación

Aquí está mi archivo 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()

Y aquí está el stacktrace.

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.


Es posible que te falte la configuración de la ruta a tu aplicación. Mira esto en mi archivo wsgi. Encontrará documentación más precisa here here . Espero que se resuelva tu problema.

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()


Esta es una respuesta para los menos inteligentes (como yo): asegúrese de verificar lo obvio: el mensaje de error dice: ... Check that you don''t make non-lazy gettext calls at import time. Por lo tanto, si usa la traducción de django en el nombre verbo de un campo modelo o en cualquier otra parte que se evalúe en el momento de la importación, debe usar la versión *_lazy . Si no, terminarás con el error que tenía el OP.

Básicamente tuve:

from django.db import models from django.utlils.translation import gettext as _ import datetime # other things class myModle(models.Model): date = models.DateField(_(''Date''), default=datetime.date.today) # other defs. and things

Y obtuve el mismo error que el OP, pero mi configuración wsgi estaba bien.

Todo lo que tenía que hacer era reemplazar gettext con gettext_lazy (o ugettext con ugettext_lazy ) y todo estaba bien.


Este parece ser el mismo que este error reportado incorrectamente - https://code.djangoproject.com/ticket/23146 .

Encontré esto también y la solución sugerida en ese enlace funcionó para mí. La actualización debe hacerse en su archivo wsgi.py Si no está seguro de cómo hacer el cambio, publique ''wsgi.py'' para que lo vea.


La misma respuesta que @hellsgate y @shawn. Tuve que reemplazar

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

por

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


La solución de @hellsgate funcionó para mí.

Específicamente desde el enlace al que hace referencia @hellsgate , cambié:

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

a

module = django.core.wsgi:get_wsgi_application()

en mi archivo vassals.ini


Me enfrenté al mismo error. Siguiendo trabajó para mí. En su archivo wsgi cambie la última línea a:

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

Esto se ha cambiado para django 1.6 a una versión más nueva. Here está la publicación que ayudó a implementar la aplicación django.

Si desea utilizar Nginx como servidor web para implementar la aplicación django, siga this publicación.


Puedes ver qué versión de "Django" has instalado con:

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

y ver que versión usa el proyecto "requerimientos.txt". Si no es la misma versión, debe desinstalar "Django" e instalar la versión establecida en "requeriments.txt".

Si usas "entorno virtual", puedes equivocarte en "entorno virtual" y lo instalaste una nueva versión de django. por ejemplo:

En su "requeriments.txt" ponga 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