UnboundLocalError: variable locale ‘full_path’ référencée avant l’affectation

Utiliser Windows 7 64Bit avec Python 2.7 et 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  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 

Erreur

 UnboundLocalError: local variable 'full_path' referenced before assignment 

Je l’ai installé moi-même, mais cela me donne des erreurs. Qu’est-ce qui va pas avec ça? J’ai essayé de Google, mais rien n’est arrivé.

J’ai aussi eu ce problème. Cela a été causé par (quelqu’un d’autre) ayant ajouté ceci à mes settings.py :

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

Et je n’ai pas installé cette chose. Vous pouvez l’installer en utilisant:

 pip install wadofstuff-django-serializers 

J’imagine qu’une erreur similaire se produit pour d’autres logiciels manquants.

Ceci est un autre exemple de Django qui mange votre exception originale, en faisant la mauvaise chose et en vous donnant une erreur complètement non-informative.

En regardant le stream de logique, vous devriez être en mesure de contourner ce bogue et de voir quelle est votre erreur réelle si vous le faites.

 manage.py syncdb --traceback 

ou peut-être

 manage.py --traceback syncdb 

Cela devrait répondre à cette question particulière et vous dire ce qui ne va pas à l’intérieur de Django. Une fois que vous avez trouvé cela, je vous recommande de poster cette traceback dans une nouvelle question si vous ne pouvez toujours pas comprendre ce qui ne va pas.

Le problème est que Windows ne sait pas quoi faire avec les fichiers python. Modifiez vos parameters Windows ou python manage.py explicitement python: python manage.py .

Cela semble être un trou dans Django 1.4.1. Nous n’avons pas assez d’informations pour vous dire exactement ce qui vous fait tomber à travers ce trou, mais il semble que la dernière version de git n’ait pas ce trou. Je pense que si vous mettez à jour le dernier code repo, vous ne rencontrerez pas cette erreur.

Je pense que vous découvrirez également que quelque chose d’autre génère une erreur pour rendre cette erreur possible.

Si vous examinez le code de loaddata.py, vous pouvez voir qu’une exception doit survenir avant que la valeur full_path ne soit affectée à la ligne 163, que cette exception a déclenché une autre exception, masquant ainsi l’erreur réelle. Ce que je suggère, c’est d’append “full_path =” au début de la fonction handle () afin que vous puissiez au moins voir la vraie erreur.

Django 1.4 n’est pas compatible avec Python 3.x.

Cela vaut probablement la peine d’essayer à nouveau avec Python 2.7 et de voir si vous rencontrez le même problème.