2012-01-26 22 views
5

Tôi đang cố gắng sử dụng Celery chạy với RabbitMQ và Django. Cho đến nay tôi có RabbitMQ 2.7 được cài đặt trên máy chủ của tôi, cùng với python 2.7, Django 1.3, cần tây 2.4.6 và django-cần tây 2.4.2Python SEM_OPEN Lỗi

i theo các hướng dẫn đơn giản ở đây http://django-celery.readthedocs.org/en/latest/introduction.html

và sau đó tôi đã cố gắng để bắt đầu cần tây bằng cách chạy

$ python manage.py celeryd 

nhưng nó đã cho tôi lỗi này

Unrecoverable error: ImportError('This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770. 

tôi đã làm một số nghiên cứu và phát hiện lỗi ở đây http://bugs.python.org/issue3770, và được cho là cố định, nhưng tôi đoán là không cho python 2.7.

Ngoài ra, Hệ điều hành của tôi là bản phát hành CentOS 4.9 (Chung kết). Và tôi đã xây dựng python từ nguồn.

tôi bắt đầu vỏ python và chạy:

import multiprocessing 

không có lỗi, tuy nhiên tôi sau đó chạy:

from multiprocessing import synchronize 

và tôi đã nhận lỗi (ở trên).

Mọi trợ giúp đều được đánh giá cao.

+0

Hệ điều hành của bạn là gì? Bạn đã tự xây dựng trăn hay cài đặt từ trình quản lý gói? Liệu 'nhập khẩu đa xử lý' trong một công việc shell python đơn giản? – AdamKG

+0

cảm ơn câu trả lời của bạn, tôi đã chỉnh sửa câu hỏi để bao gồm thông tin bạn yêu cầu. – Paulo

Trả lời

10

Tôi đã gặp sự cố tương tự trên CentOS 6 chạy dưới OpenVZ. Tôi phải gắn /dev/shm vì nó bị thiếu. Thêm nội dung sau vào /etc/fstab:

tmpfs /dev/shm tmpfs defaults  0 0 

Và sau đó chạy sudo mount /dev/shm và xem nó có hoạt động hay không. Tôi đã xây dựng Python 2.7.3 tùy chỉnh của riêng mình và thiết bị này cần phải có mặt khi xây dựng cũng như, nếu không Python sẽ không được xây dựng với sự hỗ trợ sem_open. Kiểm tra kết quả sau khi chạy ./configure:

checking for sem_open... yes 
+1

Thật không may tôi đã sử dụng một máy chủ chia sẻ, vì vậy tôi không có cách nào để gắn nó, vì vậy tôi đã mua một máy chủ mới chạy Ubuntu 11.10 và nó đã hoạt động :). Cảm ơn – Paulo