2014-12-24 13 views
16

Wenn ich versuche, auf meine App zuzugreifen, erhalte ich den folgenden Fehler.AppRegistryNotReady: Die Übersetzungsinfrastruktur kann nicht initialisiert werden

AppRegistryNotReady: Die Übersetzung Infrastruktur nicht initialisiert werden können, bevor die Apps Registrierung bereit ist. Überprüfen Sie, ob Sie nicht machen nicht faul gettext Anrufe beim Import

Hier ist meine wsgi.py Datei:

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

Und hier ist der 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. 
+3

ich auf diesem Fehler kam zu ersetzen, wenn ich Sachen in der App '__init __ wurde zu importieren. Py' die letztlich versucht' models.py' zu importieren, die importiert 'ugettext '. – jozxyqk

+1

@jozxyqk Danke, dass ich darauf hingewiesen habe, dass ich denselben Fehler erhalte, importierte Importe von '__init __. Py' nach' models.py', um das Problem zu lösen. –

Antwort

27

ich den gleichen Fehler konfrontiert. Following arbeitete für mich.

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

Diese fro 1,6 auf neuere django wurden geändert Version: In Ihrer wsgi Datei die letzte Zeile ändern. Here ist der Beitrag, der bei der Bereitstellung der Django-App geholfen hat.

Wenn Sie Nginx als Webserver zur Bereitstellung der Django-App verwenden möchten, folgen Sie this Beitrag.

+1

Danke, Ajeet. Ich habe mich lange mit diesem Problem auseinandergesetzt und es mit Ihrer Antwort gelöst. –

4

Dies scheint die gleiche wie diese falsch gemeldet Fehler zu sein - https://code.djangoproject.com/ticket/23146.

Ich stieß auch auf diese und die in diesem Link vorgeschlagene Lösung funktionierte für mich. Das Update muss in Ihrer wsgi.py Datei vorgenommen werden. Wenn Sie nicht sicher sind, wie die Änderung vorzunehmen, Post ‚wsgi.py‘ für mich

Blick haben
0

können Sie sehen, welche Version von „Django“ Sie haben installiert mit:

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

und Diese Version verwendet das Projekt "requirements.txt". Wenn es nicht die gleiche Version ist, müssen Sie "Django" deinstallieren und die Version auf "requirements.txt" installieren.

Wenn Sie "virtuelle Umgebung" verwenden, können Sie "virtuelle Umgebung" falsch stellen und Sie installierten eine neue Version von Django. zum Beispiel:

In Ihrem "requeriments.txt" == 1.6.1 Django setzen

$python -c 'import django; print(django.get_version())' 
1.7.4 
$sudo pip uninstall Django 
$sudo pip install Django==1.6.1 
7

@hellsgate Lösung arbeitete für mich.

Insbesondere vom link referenced by @hellsgate, ich geändert:

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

zu

module = django.core.wsgi:get_wsgi_application() 

in meiner vassals.ini Datei

1

Sie könnten Einrichtung Pfad zu Ihrer Anwendung fehlen. Überprüfe das in meiner WSGI-Datei. Sie finden genauere Dokumentation herehttps://joshcarllewis.com/articles/getting-started-with-django. Ich hoffe, es wird Ihr Problem lösen.

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

Dies ist eine Antwort für die weniger Klugen (wie ich): Achten Sie darauf, das Offensichtliche zu überprüfen: Die Fehlermeldung lautet: ... Check that you don't make non-lazy gettext calls at import time. Also, wenn Sie Djangos Übersetzung im verbose_name eines Modellfeld nutzen oder auf jedes andere Teil, das zum Zeitpunkt des Imports ausgewertet wird, müssen Sie die *_lazy Version verwenden. Wenn nicht, werden Sie mit dem Fehler des OP enden.

Ich hatte im Grunde:

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 

Und bekam die gleichen Fehler wie die OP, aber meine wsgi Config war in Ordnung.

Alles, was ich tun musste, war gettext mit gettext_lazy (oder ugettext mit ugettext_lazy) und alles war in Ordnung zu ersetzen.

0

Gleiche Antwort wie @hellsgate und @shawn. Ich hatte

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

von

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