UnboundLocalError:赋值之前引用的局部variables“full_path”

使用Window 7 64Bit与Python 2.7和Django 1.4。

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Django-1.4\django\bin\cms2>manage.py syncdb Creating tables ... Installing custom SQL ... Installing indexes ... Traceback (most recent call last): File "C:\Django-1.4\django\bin\cms2\manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 443, in execute_from_command_line utility.execute() File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 382, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 232, in execute output = self.handle(*args, **options) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 371, in handle return self.handle_noargs(**options) File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py" , line 164, in handle_noargs call_command('loaddata', 'initial_data', verbosity=verbosity, database=db) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 150, in call_command return klass.execute(*args, **defaults) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 232, in execute output = self.handle(*args, **options) File "C:\Python27\lib\site-packages\django\core\management\commands\loaddata.p y", line 239, in handle (full_path, ''.join(traceback.format_exception(sys.exc_type, UnboundLocalError: local variable 'full_path' referenced before assignment 

错误

 UnboundLocalError: local variable 'full_path' referenced before assignment 

我自己安装它,但它给我错误。 它有什么问题? 我试图谷歌,但没有出现。

我也有这个问题。 这是由(其他人)添加到我的settings.py

 SERIALIZATION_MODULES = { 'json': 'wadofstuff.django.serializers.json' } 

而我没有安装这个东西。 你可以使用下面的方法安装

 pip install wadofstuff-django-serializers 

我想像其他缺少的软件发生类似的错误。

这是Django吃掉你的原始异常,做错误的事情,并给你一个完全无误的错误的另一个例子。

看看逻辑流程,你应该能够绕过这个错误,看看你的实际错误是什么

 manage.py syncdb --traceback 

或者可能

 manage.py --traceback syncdb 

这应该回答这个问题,并告诉你在Django里面出了什么问题。 一旦你发现,如果你仍然不知道发生了什么问题,我建议在一个新的问题中发布这个回溯。

问题是,Windows不知道如何处理python文件。 要么改变你的Windows设置,要么显式地调用python: python manage.py

这似乎是Django 1.4.1中的一个漏洞。 我们没有足够的信息来告诉你究竟是什么原因导致你陷入这个洞,但是看起来最新的git版本没有这个漏洞。 我想如果你更新到最新的回购代码,你不会有这个错误。

我想你也会发现其他的东西是抛出一个错误,使这个错误成为可能。

如果查看loaddata.py的代码,可以看到在第163行的full_path被分配了一个值之前必须发生异常,这使得异常句柄引发了另一个异常,从而掩盖了实际的错误。 我建议在handle()函数的开头添加“full_path =”'“,这样至少可以看到真正的错误。

Django 1.4与Python 3.x不兼容 。

可能值得再次尝试Python 2.7,看看你是否遇到了同样的问题。