2012-01-26 10 views
5

RabbitMQとDjangoで動作するCeleryを使用しようとしています。これまでのところ私は、Python 2.7と、Django 1.3、セロリ2.4.6とDjango-セロリ2.4.2Python SEM_OPENエラー

とともに、RabbitMQの2.7は私のサーバーにインストールされている私はここ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ではないと思います。

また、My OSはCentOSリリース4.9(最終版)です。そして、ソースからPythonをビルドしました。私はPythonシェルを開始し、走った

from multiprocessing import synchronize 

を、私は(上記の)エラーが発生しました:エラーなしで

import multiprocessing 

を、しかし、私はそれから走りました。

何か助けていただければ幸いです。

+0

お使いのOSは?自分でPythonをビルドしたのか、パッケージマネージャーからインストールしたのですか?単純なpythonシェルで 'import multiprocessing'は動作しますか? – AdamKG

+0

あなたの返信ありがとう、私はあなたが要求した情報を含めるために質問を編集しました。 – Paulo

答えて

10

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 
+1

残念ながら私は共有サーバーを使用していたので、マウントする方法がなかったので、Ubuntu 11.10を実行している新しいサーバーを購入しました。ありがとう – Paulo