我一直在尝试使用cookiecutter https://github.com/pydanny/cookiecutter-django.git设置Django和cookiecutter-django项目,当我最后运行./manage.py makemigrations时,我得到了这个错误输出。
我在virturalenv中的python版本是Python 3.5.2
这是控制台输出的尾部,而不是来自文件。堆栈溢出不允许我在没有更多其他文本的情况下发布所有的长错误输出。
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/db/models/base.py", line 156, in __new__
new_class.add_to_class(obj_name, obj)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/db/models/base.py", line 321, in add_to_class
value.contribute_to_class(cls, name)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 1588, in contribute_to_class
self.remote_field.through = create_many_to_many_intermediary_model(self, cls)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/db/models/fields/related.py", line 1057, in create_many_to_many_intermediary_model
'verbose_name': _('%(from)s-%(to)s relationship') % {'from': from_, 'to': to},
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/functional.py", line 192, in __mod__
return str(self) % rhs
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/functional.py", line 156, in __text_cast
return func(*self.__args, **self.__kw)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/__init__.py", line 79, in gettext
return _trans.gettext(message)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/trans_real.py", line 285, in gettext
_default = _default or translation(settings.LANGUAGE_CODE)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/trans_real.py", line 198, in translation
_translations[language] = DjangoTranslation(language)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/trans_real.py", line 99, in __init__
self._add_local_translations()
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/trans_real.py", line 151, in _add_local_translations
translation = self._new_gnu_trans(localedir)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/site-packages/django/utils/translation/trans_real.py", line 123, in _new_gnu_trans
fallback=use_null_fallback,
File "/usr/lib/python3.5/gettext.py", line 428, in translation
mofiles = find(domain, localedir, languages, all=True)
File "/usr/lib/python3.5/gettext.py", line 396, in find
mofile = os.path.join(localedir, lang, 'LC_MESSAGES', '%s.mo' % domain)
File "/root/painlesslanguage/painlesslanguageenv/lib/python3.5/posixpath.py", line 84, in join
elif not path or path.endswith(sep):
AttributeError: 'Path' object has no attribute 'endswith'如果有必要的话,我将TIME_ZONE cookiecutter-django设置选项留空。
发布于 2021-07-18 22:34:26
这似乎是一个很难修复甚至调试的错误。一些用户没有在settings.py中正确地包含静态url,或者在INSTALLED_APPS声明中留下了一个尾随逗号,就会出现这个错误。
然而,就在我切换python版本时,我得到了这个错误。通过重新安装python并将pyenv python重新链接到brew,我最终以某种方式解决了它(当时)。
然而,现在它又回来了。肯定有一种方法可以调试它。所有堆栈跟踪都指向python安装中的文件或仅指向设置文件。但是如果你的设置文件看起来很好,那就真的很难知道如何修复它了。检查完你的python (检查后面没有逗号),建议重新安装settings.py,看看这是否有帮助。
如果这不起作用,那么帮助我的就是打印出正在安装的应用程序。为此,您必须在抛出错误的python/django代码中添加打印行。默认情况下,此信息不会发送到应用层,但应该发送到应用层。如果您再次更改py安装,这些文件将被删除。所以这是一种临时的/本地的方式来帮助你调试。实际上,如果框架无法导入应用程序,它应该发送名称信息。通过添加这些行,我发现了导入的问题所在。
https://stackoverflow.com/questions/58257472
复制相似问题