0

同様の質問がありますが、今日見つけた特定のケースでは答えていません。

私は openSUSE で実行していますが、syncdb を実行すると、この不可解なエラーが発生します。同様の状況にある他の人を助けるために、調査結果を投稿しています。

> python manage.py syncdb
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",     line 459, in execute_manager
    utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",     line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 164, in handle_noargs
    call_command('loaddata', 'initial_data', verbosity=verbosity, database=db)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command
    return klass.execute(*args, **defaults)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py", line 239, in handle
    (full_path, ''.join(traceback.format_exception(sys.exc_type,
UnboundLocalError: local variable 'full_path' referenced before assignment
4

1 に答える 1

2

エラーはきれいではありません (キャッチされるべきであり、完全なエラー メッセージがユーザーに返されるはずです) が、これは、システムにデフォルトまたはオプションのシリアライゼーション モジュールが存在しない場合に発生します。

たとえば、settings.py のSERIALIZATION_MODULESdict にwadofstuff.django.serializers.jsonシリアル化モジュールが記載されていて、それがインストールされていない場合、そのエラーが返されます。

たとえば、次のようにインストールします。

pip install wadofstuff-django-serializers

openSUSE では、python-xmlモジュールがインストールされていない (python-baseパッケージの一部ではない) ため、インポートがxml.sax.saxutils失敗する可能性があります。

その場合、python-xmlたとえば次のようにしてインストールします。

sudo zypper in python-xml

そしてそれはうまくいくはずです。

これが機能しない場合は、実行pdbして、失敗している場所にブレークポイントを設定できます。例えば:

> python -m pdb manage.py syncdb
> manage.py(2)<module>() -> from django.core.management import execute_manager
(Pdb) b /usr/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py:110
Breakpoint 1 at /usr/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py:110
(Pdb) c
Creating tables ...
Installing custom SQL ...
Installing indexes ...
> /usr/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py(110)handle()
-> for fixture_label in fixture_labels:
(Pdb) n
> /usr/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py(111)handle()
-> parts = fixture_label.split('.')

ある時点で、エラーが明確にポップアップすることがわかります。

ImportError: 'No module named xml.sax.saxutils'
于 2013-02-15T08:48:26.960 に答える