这里有一个similar question,但在我今天发现的特定情况下,它不能回答这个问题。在
我运行的是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
错误并不漂亮(应该已经捕捉到,并且应该向用户返回完整的错误消息),但是当系统中不存在某些默认或可选的序列化模块时,就会发生这种情况。在
例如,如果在设置.py,在
SERIALIZATION_MODULES
dict中,提到了wadofstuff.django.serializers.json
序列化模块,如果没有安装它,它将返回该错误。在安装方法如下:
在openSUSE上,另一种可能是未安装
python-xml
模块(它不是python-base
包的一部分),因此,xml.sax.saxutils
的导入可能失败。在在这种情况下,请安装
^{pr2}$python-xml
,例如通过执行以下操作:它应该会起作用的。在
如果这不起作用,您可以运行
pdb
在它失败的地方放置一个断点。例如:在某些时候,您会发现错误很明显地出现:
相关问题 更多 >
编程相关推荐