django-admin.py makemessages 失败

问题描述 投票:0回答:3

我用

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 模式。 你有什么提示吗?

python django internationalization gettext
3个回答
3
投票

自从 django 1.7 以来我也遇到了同样的问题。我使用manage.py而不是django-admin.py来制作消息,不包括环境文件夹:

python manage.py makemessages --locale=en --ignore=venv/*

1
投票

这是由于 Django 1.7.1 中引入的 bug 造成的。您可以通过使用以下方法将 Django 更新到最新版本来解决此问题:

  pip install -U django

附注关于此事的相关 StackOverflow 问题和解答可以在这里这里找到。


0
投票

这对我有用:

python manage.py makemessages --locale=en --ignore=venv/*

© www.soinside.com 2019 - 2024. All rights reserved.