Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django问题,gettext无法读取.mo文件_Django_Python 2.7 - Fatal编程技术网

Django问题,gettext无法读取.mo文件

Django问题,gettext无法读取.mo文件,django,python-2.7,Django,Python 2.7,为了给大家一点背景知识,我正在实习将Django应用程序从1.4.22升级到1.11,并将Python2升级到3 该项目没有得到很好的分解,当我试图重构它时,我得到了一个奇怪的堆栈: Traceback (most recent call last): File "/home/antonin/Developpement/Projet/djangoproject2/djangoproject/manage.py", line 10, in <module> execute_

为了给大家一点背景知识,我正在实习将Django应用程序从1.4.22升级到1.11,并将Python2升级到3

该项目没有得到很好的分解,当我试图重构它时,我得到了一个奇怪的堆栈:

Traceback (most recent call last):
  File "/home/antonin/Developpement/Projet/djangoproject2/djangoproject/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/antonin/Developpement/Projet/djangoproject2/djangoproject/instance/models.py", line 54, in <module>
    YEARS += [(str(yr), _(u"n+%(year)d") % {'year': yr}) for yr in range(1, 20)]
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/functional.py", line 179, in __mod__
    return six.text_type(self) % rhs
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/functional.py", line 144, in __text_cast
    return func(*self.__args, **self.__kw)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 83, in ugettext
    return _trans.ugettext(message)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 325, in ugettext
    return do_translate(message, 'ugettext')
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 306, in do_translate
    _default = translation(settings.LANGUAGE_CODE)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 209, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 195, in _fetch
    res = _merge(apppath)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 177, in _merge
    t = _translation(path)
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 159, in _translation
    t = gettext_module.translation('django', path, [loc], DjangoTranslation)
  File "/usr/lib64/python2.7/gettext.py", line 554, in translation
    t = _translations.setdefault(key, class_(fp))
  File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 107, in __init__
    gettext_module.GNUTranslations.__init__(self, *args, **kw)
  File "/usr/lib64/python2.7/gettext.py", line 255, in __init__
    self._parse(fp)
  File "/usr/lib64/python2.7/gettext.py", line 348, in _parse
    magic = unpack('<I', buf[:4])[0]
struct.error: unpack requires a string argument of length 4
其中fp.read()接收u'path/to/file.po'(正确的路径)并返回空缓冲区。但我看不出为什么会出现这种情况


编辑:谢谢,håken,确实是.mo文件被破坏了。问题已解决。

请编辑您的源代码,或给出导致跟踪出现此类错误的原因以及导致出现此类错误的步骤的示例。如果没有更多信息,将无法为您提供帮助。一个.mo文件可能已损坏?你手动编辑了吗?您可以使用django admin compilemessages重新生成
File "/home/antonin/Developpement/Projet/djangoproject2/venv/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 107, in __init__
    gettext_module.GNUTranslations.__init__(self, *args, **kw)