6

私はいつもこのスクリプトを使って django.po をコンパイルしていますが、常に動作していました:

#!/bin/sh
django-admin.py makemessages -a
django-admin.py compilemessages

突然、次のエラーで機能しなくなりました。

$ i18n.sh
Traceback (most recent call last):
  File "c:/Python34/Scripts/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "c:\Python34\lib\site-packages\django\core\management\__init__.py", line
385, in execute_from_command_line
    utility.execute()
  File "c:\Python34\lib\site-packages\django\core\management\__init__.py", line
377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 288,
 in run_from_argv
    self.execute(*args, **options.__dict__)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 338,
 in execute
    output = self.handle(*args, **options)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 533,
 in handle
    return self.handle_noargs(**options)
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 283, in handle_noargs
    potfiles = self.build_potfiles()
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 299, in build_potfiles
    file_list = self.find_files(".")
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 358, in find_files
    ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings
.STATIC_ROOT)]
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 358, in <listcomp>
    ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings
.STATIC_ROOT)]
  File "c:\Python34\lib\ntpath.py", line 491, in normpath
    if path.startswith(special_prefixes):
AttributeError: 'NoneType' object has no attribute 'startswith'
processing file django.po in c:\Users\Debora\workspace\opti\opti2.0\project\loca
le\pt_BR\LC_MESSAGES

誰にもアイデアはありますか?

何が原因なのかわかりません。最近、django 1.7 を 1.7.1 に更新し、関連のないパッケージをいくつかインストールしました。

4

6 に答える 6

5

Django 1.7 にアップグレードした後、同じ問題が発生しました

実行するたびに設定モジュールを指定して修正しましたdjango-admin.py

cd ~/myproject/myproject # where the ``locale`` folder exists
PYTHONPATH=~/myproject django-admin.py makemessages --settings=myproject.settings -l <language>

更新: Django 1.7.2 で修正されたバグです。https://docs.djangoproject.com/en/1.7/releases/1.7.2/ https://code.djangoproject.com/ticket/23717 を参照して ください

于 2014-11-07T10:21:41.763 に答える
2

Django 1.7.1 を使用しても同じ問題が発生しました。

コマンドを変更して修正しました:django-admin.pypython manage.py.

したがって、コマンド全体は次のようになります。

python manage.py makemessages --locale=en --ignore=templates/admin --ignore=project/settings.py

于 2014-11-10T19:35:41.840 に答える