我正在尝试使用与RabbitMQ和Django一起运行的Celery。到目前为止,我的服务器上安装了RabbitMQ 2.7,以及python 2.7,Django 1.3,芹菜2.4.6和django-celery 2.4.2
我按照这里的简单说明http://django-celery.readthedocs.org/en/latest/introduction.html
然后我尝试通过运行
来启动芹菜$ python manage.py celeryd
但它给了我这个错误
Unrecoverable error: ImportError('This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.
我做了一些研究,发现这里的错误http://bugs.python.org/issue3770,并且它应该是固定的,但我猜不是python 2.7。
另外,我的操作系统是CentOS 4.9版(最终版)。我从源代码构建了python。
我启动了python shell并运行:
import multiprocessing
没有错误,但我跑了:
from multiprocessing import synchronize
我得到了错误(上图)。
感谢任何帮助。
答案 0 :(得分:10)
我在OpenVZ下运行的CentOS 6上遇到了同样的问题。我不得不挂载/dev/shm
因为它丢失了。将以下内容添加到/etc/fstab
:
tmpfs /dev/shm tmpfs defaults 0 0
然后运行sudo mount /dev/shm
并查看它是否有效。我有自己定制的Python 2.7.3,并且在构建时需要存在此设备,否则将不会使用sem_open
支持构建Python。运行./configure
时检查以下输出:
checking for sem_open... yes