0
当试图与节拍调度运行Django的芹菜:使用python 2.6.5破坏ubuntu 10.04上的anydbm.py?
bin/django celeryd -B --settings=app.development --loglevel=INFO
我得到这个异常:
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'
我自己的调查使我发现了anydbm Python模块在
/usr/lib/python2.6/anydbm.py
发现
是一个空文件。但python2.6.5 doc说有一个
anydbm.open(filename[, flag[, mode]])
方法。
我错过了什么吗?我认为anydbm [ubuntu] python模块已损坏。
我使用:
的Ubuntu 10.04
的Python 2.6.5
Django的芹菜2.1.1
芹菜扩建安装
重新安装python2.6修正了这个错误。 我用这个命令:apt-get install --reinstall python2.6 但是,这怎么可能发生呢仍然是一个谜。 – univ 2010-10-29 09:28:35
有些东西覆盖了文件。文件系统损坏,粗心的root进程,更新期间磁盘已满,谁知道。 – 2010-10-29 09:57:34