2011-04-21 11 views
7

Faire une construction récente, j'ai couru le syncdb de Django, et j'obtiens l'erreur:non valide Django TIME_ZONE

Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_manager(settings) 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/management/__init__.py", line 252, in fetch_command 
    app_name = get_commands()[subcommand] 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/core/management/__init__.py", line 101, in get_commands 
    apps = settings.INSTALLED_APPS 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/utils/functional.py", line 276, in __getattr__ 
    self._setup() 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/conf/__init__.py", line 42, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/conf/__init__.py", line 125, in __init__ 
    raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE) 
ValueError: Incorrect timezone setting: America/New_York EST5EDT SystemV/EST5EDT US/Eastern 

Je n'ai pas changé aucun de mes paramètres de base, donc je ne sais pas pourquoi je serait soudainement obtenir cette erreur. La valeur dans mon fichier settings.py est TIME_ZONE = 'America/New_York', qui est une valeur valide selon this. Pourquoi Django n'accepte-t-il pas cette valeur?

Répondre

24

Selon le message d'erreur:

ValueError: Incorrect timezone setting: America/New_York EST5EDT SystemV/EST5EDT US/Eastern

il semble que TIME_ZONE, en settings.py, est égal à: America/New_York EST5EDT SystemV/EST5EDT US/Eastern

Vous devez écrire seulement America/New_York.

Si ce n'est pas le cas, vérifier l'existence du fichier:

/usr/share/zoneinfo/America/New_York

si elle est absente, cette zone de temps est invalide sur votre système.

(fuseaux horaires valides sont /usr/share/zoneinfo/)

+0

Vous avez tout à fait raison. Un bogue dans mon script de déploiement a provoqué l'utilisation de l'ancienne version en cache de mes settings.py, qui avait cette valeur TIME_ZONE non valide. – Cerin

+1

S'il vous plaît noter également que le paramètre d'échec peut être aussi subtil que 'TIME_ZONE = 'America/New York'' au lieu de' TIME_ZONE =' America/New_York'' C'est ce qui m'est arrivé, et j'avais une version de deux ans de Django. – octopusgrabbus