2010-10-29 9 views
0

Lorsque vous essayez de lancer django-céleri avec le programmateur de battement:Anydbm.py cassé sur Ubuntu 10.04 avec python 2.6.5?

bin/django celeryd -B --settings=app.development --loglevel=INFO 

Je suis arrivé cette exception:

Process Beat: 
Traceback (most recent call last): 
File "/usr/local/lib/python2.6/dist-packages/multiprocessing/process.py", line 237, in _bootstrap 
self.run() 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 388, in run 
self.service.start(embedded_process=True) 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 318, in start 
humanize_seconds(self.scheduler.max_interval))) 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 358, in scheduler 
self._scheduler = self.get_scheduler() 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 350, in get_scheduler 
lazy=lazy) 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/utils/__init__.py", line 362, in instantiate 
return get_cls_by_name(name)(*args, **kwargs) 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 270, in __init__ 
Scheduler.__init__(self, *args, **kwargs) 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 146, in __init__ 
self.setup_schedule() 
File "/home/user/eggs/celery-2.1.1-py2.6.egg/celery/beat.py", line 273, in setup_schedule 
self._store = self.persistence.open(self.schedule_filename) 
File "/usr/lib/python2.6/shelve.py", line 239, in open 
return DbfilenameShelf(filename, flag, protocol, writeback) 
File "/usr/lib/python2.6/shelve.py", line 223, in __init__ 
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback) 
AttributeError: 'module' object has no attribute 'open' 

Ma propre enquête m'a amené à découvrir que le module python anydbm trouvé dans

/usr/lib/python2.6/anydbm.py 

est un fichier vide. Mais le python2.6.5 doc indique qu'il existe une méthode

anydbm.open(filename[, flag[, mode]]) 

.

Ai-je raté quelque chose? Je pense que le module python anydbm [ubuntu] est cassé.

J'utilise:

  • Ubuntu 10,04

  • Python 2.6.5

  • django-céleri 2.1.1

  • céleri installé avec buildout

Répondre

0

Si /usr/lib/python2.6/anydbm.py est un fichier vide pour vous, alors oui, votre installation est cassée. /usr/lib/python2.6/anydbm.py est le bon fichier, avec le contenu, sur mon système Ubuntu 10.04, avec python2.6_2.6.5-1ubuntu6 installé. Vous devez vous assurer que le dernier paquet est installé et peut-être le réinstaller.

+0

La réinstallation de python2.6 a corrigé cette erreur. J'ai utilisé cette commande: apt-get install --reinstall python2.6 Mais c'est toujours un mystère de savoir comment cela pourrait se produire. – univ

+0

Quelque chose a écrasé le fichier. La corruption du système de fichiers, les processus root négligents, le disque plein lors d'une mise à jour, qui sait. –

Questions connexes