UnboundLocalError:赋值前引用的局部变量'full_path'

时间:2012-05-10 13:01:07

标签: python windows django

将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

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

6 个答案:

答案 0 :(得分:10)

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

引起的
SERIALIZATION_MODULES = {
    'json': 'wadofstuff.django.serializers.json'
}

我没有安装那件东西。您可以使用以下方式安装它:

pip install wadofstuff-django-serializers

我想其他丢失的软件也会发生类似的错误。

答案 1 :(得分:2)

这是另一个Django吃掉你原来的异常,做错了事,并且给你一个完全没有信息的错误的例子。

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

manage.py syncdb --traceback

或者

manage.py --traceback syncdb

那应该回答这个问题并告诉你Django里面出了什么问题。一旦你找到了,如果你仍然无法弄清楚出了什么问题,我建议在新问题中发布该回溯。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这似乎是Django 1.4.1中的漏洞。我们没有足够的信息告诉您究竟是什么导致您通过这个洞,但看起来latest git version没有这个洞。我想如果你更新到最新的repo代码,你就不会有这个错误。

我想你也会发现其他东西会引发错误以使这个错误成为可能。

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

Django 1.4 isn't compatible with Python 3.x

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