【发布时间】:2014-11-04 20:25:59
【问题描述】:
我用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 模式。 你有什么提示吗?
【问题讨论】:
-
您是否检查过以确保
settings.MEDIA_ROOT和settings.STATIC_ROOT存在且有效? -
我尝试将它们设置为:
STATIC_ROOT = ( os.path.join(BASE_DIR, 'static'), )或使用 '/var/www/projectroot/static' -
好吧,这很奇怪:我使用 vagrant 进行开发,并且所描述的错误在那里发生,而其他所有命令都不会产生失败。我已经在主机上试过了,一切正常。
-
那不是重复的,是同一个问题!
标签: python django internationalization gettext