Python SEM_OPEN Ошибка - PullRequest
       6

Python SEM_OPEN Ошибка

5 голосов
/ 26 января 2012

Я пытаюсь использовать Celery с RabbitMQ и Django.До сих пор на моем сервере установлен RabbitMQ 2.7, а также python 2.7, Django 1.3, celery 2.4.6 и django-celery 2.4.2

Я следовал простым инструкциям здесь http://django -celery.readthedocs.org / en / latest / ввод.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 (Final).И я создал Python из исходного кода.

Я запустил оболочку Python и запустил:

import multiprocessing

без ошибок, однако затем я запустил:

from multiprocessing import synchronize

и яполучил ошибку (выше).

Любая помощь приветствуется.

1 Ответ

10 голосов
/ 31 мая 2012

Я столкнулся с той же проблемой на CentOS 6, работающем под OpenVZ.Мне пришлось смонтировать /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
...