Ошибка создания сообщений django-admin.py

Я создал языковые файлы с помощью django-admin.py makemessages -a

Немного разработки позже, все попытки создать файлы *.po терпят неудачу:

django-admin.py makemessages  -v 3 -a
examining files with the extensions: .html and .txt
Traceback (most recent call last):
  File "/usr/local/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py",         line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line     377, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line    288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 533, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemessages.py", line 283, in handle_noargs
potfiles = self.build_potfiles()
File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemessages.py", line 299, in build_potfiles
file_list = self.find_files(".")
File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemessages.py", line 358, in find_files
ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings.STATIC_ROOT)]
File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemessages.py", line 358, in <listcomp>
ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings.STATIC_ROOT)]
File "/usr/lib/python3.4/posixpath.py", line 335, in normpath
initial_slashes = path.startswith(sep)
AttributeError: 'NoneType' object has no attribute 'startswith'

Я попробовал это с несколькими расширениями файлов и шаблонами -ignore. У вас есть подсказки?


person Lioman    schedule 04.11.2014    source источник
comment
Вы проверили, что settings.MEDIA_ROOT и settings.STATIC_ROOT существуют и действительны?   -  person schillingt    schedule 05.11.2014
comment
Я пытался установить их так: STATIC_ROOT = ( os.path.join(BASE_DIR, 'static'), ) или с помощью '/var/www/projectroot/static'   -  person Lioman    schedule 05.11.2014
comment
Хорошо, это странно: я использую vagrant для разработки, и там происходит описанная ошибка, тогда как любая другая команда не приводит к сбою. Я попробовал это на хост-машине, и все работает как надо.   -  person Lioman    schedule 05.11.2014
comment
Это не дубликат, это тот же вопрос!   -  person Lioman    schedule 18.11.2014


Ответы (2)


Это связано с ошибкой, появившейся в Django 1.7.1. Вы можете исправить это, обновив Django до последней версии, используя:

  pip install -U django

P.S. Связанные с StackOverflow вопросы и ответы по этому вопросу можно найти здесь и здесь.

person Akyidrian    schedule 21.01.2015

У меня была такая же проблема с django 1.7. Я использую manage.py для создания сообщений вместо django-admin.py, исключая папку среды:

python manage.py makemessages --locale=en --ignore=venv/*
person iago1460    schedule 08.12.2014