Python SEM_OPEN错误

时间:2012-01-26 07:26:54

标签: python django celery django-celery

我正在尝试使用与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

我得到了错误(上图)。

感谢任何帮助。

1 个答案:

答案 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