属性错误:'Nonetype'对象没有属性'_info'。

6
我正在处理一个Django项目,在运行任何管理命令时,例如:python manage.py validate --settings ord.settings.developmentpython manage.py syncdb --settings ord.settings.development,都会出现以下错误。该项目使用Django 1.5版本。错误信息如下:AttributeError: 'Nonetype' object has no attribute '_info'。没有其他输出。
项目基本设置文件为:https://gist.github.com/anonymous/5c0fede63b2724d7880b 开发环境设置文件为:https://gist.github.com/anonymous/f60b90dcf573b0a7b920 我已经将敏感设置替换为x
有什么想法吗?
额外的信息是,当我注释掉LANGUAGE_CODE设置时,一些命令如validaterunservershell可以正常运行,但是syncdbmigrate会失败并显示以下错误:DatabaseError: current transaction is aborted, commands ignored until end of transaction block
回溯信息: https://gist.github.com/anonymous/bc3364ae5ba511566871

1
请提供完整的回溯信息,以便我们确定实际导致错误的原因。 - Daniel Roseman
@DanielRoseman 没有其他输出。当我运行管理命令时,只有一行输出:'Nonetype'对象没有属性'_info' - lenny
你必须使用 --traceback 选项来运行它。 - Two-Bit Alchemist
@Two-BitAlchemist,我已经添加了回溯信息。谢谢。 - lenny
3个回答

18

我遇到了同样的问题,

请按照以下步骤操作:

  1. 进入 django/utils/translation/trans_real.py
  2. 寻找 res = _translation(globalpath)
  3. 添加以下内容:

    if res is None:
        return gettext_module.NullTranslations()
    

来源:https://code.djangoproject.com/ticket/18192


这将会忽略翻译,如果找不到的话,只是缓解了症状。但是同意,它有效;-) - benzkji

8

在 Ubuntu 14.04 上进行新安装时遇到了相同的问题。经过深入挖掘 - 我认为我应该分享我的发现:

我们正在使用 Django 1.5,也遇到了同样的错误。看起来 Django 安装缺少文件夹 django/conf/locale/en/LC_MESSAGES

解决方案是安装最新版本 "pip install django==1.5.12"


2
哇,非常感谢!不确定它与14.04有什么关系,但我有Django 1.3。复制LC_MESSAGES有帮助。 - Soid

4
我在虚拟环境中遇到了这个错误。
我注意到pip在错误的位置安装了Django的一些部分,它被安装在虚拟环境的顶层文件夹而不是lib/python2.7/site-packages/。
无论如何,我按照这个答案的建议进行操作,清除了损坏的pip缓存: pip and virtualenv installing parts of django in the wrong place 之后,Django被正确地安装到了指定位置,错误也消失了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接