我正在尝试使用与RabbitMQ和Django一起运行的Celery。到目前为止,我已经在我的服务器上安装了RabbitMQ 2.7,以及python 2.7、Django 1.3、芹菜2.4.6和Django-芹菜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
我得到了错误(如上)。
感谢您的帮助。
我在OpenVZ下运行的CentOS 6上遇到了同样的问题。我不得不装载/dev/shm
,因为它不见了。将以下内容添加到/etc/fstab
:
tmpfs /dev/shm tmpfs defaults 0 0
然后运行sudo mount /dev/shm
,看看它是否有效。我有自己的自定义Python 2.7.3,在构建时也需要使用此设备,否则Python将无法使用sem_open
支持进行构建。运行./configure
:时检查以下输出
checking for sem_open... yes