2010-07-23 38 views
13

Tôi có một dự án Django sử dụng Celery để chạy các tác vụ không đồng bộ. Tôi đang phát triển trên máy tính Windows XP.cần tây-django không thể tìm thấy cài đặt

Bắt đầu từ máy chủ Django của tôi (python manage.py runserver 80) hoạt động tốt, nhưng cố gắng để bắt đầu Cần tây Daemon (python manage.py celeryd start) không thành công với các lỗi sau:

ImportError: Không thể nhập các thiết lập 'src.settings' (Is nó trên sys.path? Có lỗi cú pháp không?): Không có mô-đun nào có tên src.settings

sys.path bao gồm 'C: \ development \ SpaceCorps \ src', vì vậy tôi không chắc tại sao nó không thể tìm thấy mô-đun này.

Dưới đây là toàn bộ sản lượng từ bắt đầu daemon:

C:\development\SpaceCorps\src>python manage.py celeryd start 
[2010-07-23 18:29:31,456: WARNING/MainProcess] ?[1;[email protected] v2.0.1 is starting.?[0m 
[2010-07-23 18:29:31,456: WARNING/MainProcess] ?[1;33mC:\Program Files\Python26\lib\site-packages\celery-2.0.1-py2.6.egg\celery\bin\celeryd.py:206: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in a production environment! 
    warnings.warn("Using settings.DEBUG leads to a memory leak, "?[0m 
[2010-07-23 18:29:31,456: WARNING/MainProcess] ?[1;33mConfiguration -> 
    . broker -> amqp://[email protected]:5672/ 
    . queues -> 
    . celery -> exchange:celery (direct) binding:celery 
    . concurrency -> 2 
    . loader -> djcelery.loaders.DjangoLoader 
    . logfile -> [stderr]@WARNING 
    . events -> OFF 
    . beat -> OFF?[0m 
[2010-07-23 18:29:31,706: WARNING/MainProcess] ?[1;[email protected] has started.?[0m 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "C:\Program Files\Python26\lib\multiprocessing\forking.py", line 342, in main 
    self = load(from_parent) 
    File "C:\Program Files\Python26\lib\pickle.py", line 1370, in load 
    return Unpickler(file).load() 
    File "C:\Program Files\Python26\lib\pickle.py", line 858, in load 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    dispatch[key](self) 
    File "C:\Program Files\Python26\lib\pickle.py", line 1090, in load_global 
    File "C:\Program Files\Python26\lib\multiprocessing\forking.py", line 342, in main 
    self = load(from_parent) 
    File "C:\Program Files\Python26\lib\pickle.py", line 1370, in load 
    klass = self.find_class(module, name) 
    File "C:\Program Files\Python26\lib\pickle.py", line 1124, in find_class 
    return Unpickler(file).load() 
    File "C:\Program Files\Python26\lib\pickle.py", line 858, in load 
    dispatch[key](self) 
    File "C:\Program Files\Python26\lib\pickle.py", line 1090, in load_global 
    __import__(module) 
    File "C:\Program Files\Python26\lib\site-packages\celery-2.0.1-py2.6.egg\celery\concurrency\processes\__init__.py", line 7, in <module> 
    from celery import log 
    File "C:\Program Files\Python26\lib\site-packages\celery-2.0.1-py2.6.egg\celery\log.py", line 8, in <module> 
    from celery import conf 
    File "C:\Program Files\Python26\lib\site-packages\celery-2.0.1-py2.6.egg\celery\conf.py", line 118, in <module> 
    ALWAYS_EAGER = _get("CELERY_ALWAYS_EAGER") 
    File "C:\Program Files\Python26\lib\site-packages\celery-2.0.1-py2.6.egg\celery\conf.py", line 109, in _get 
    value = getattr(settings, alias) 
    File "c:\development\django\django\utils\functional.py", line 276, in __getattr__ 
    self._setup() 
    File "c:\development\django\django\conf\__init__.py", line 40, in _setup 
    self._wrapped = Settings(settings_module) 
    File "c:\development\django\django\conf\__init__.py", line 75, in __init__ 
    raise ImportError("Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'src.settings' (Is it on sys.path? Does it have syntax errors?): No module named src.settings 

Trả lời

19

Rõ ràng đây là sự cố với running Celery on Windows. Sử dụng số - cài đặt đối số ala python manage.py celeryd start --settings=settings đã thực hiện thủ thuật.

+1

Câu trả lời hay! Tôi đã có cùng một vấn đề trên Windows với multiprocessing và Django, nhưng thêm tham số --settings cố định nó. –

+0

Việc này đã giải quyết được lỗi ban đầu. Tuy nhiên, bây giờ celeryd ném một ngoại lệ: ImportError: Không có module có tên evertabs - evertabs là tên của dự án của tôi. –

0

sys.path phải bao gồm 'C: \ phát triển \ SpaceCorps' không 'C: \ phát triển \ SpaceCorps \ src', vì ông đang tìm kiếm src.settings, không chỉ cài đặt.

+2

Điều đó có ý nghĩa, nhưng tại sao máy chủ Django chạy mà không có lỗi? Tôi đang chạy cả hai lệnh từ cùng một thư mục (src), và các giá trị sys.path đều giống nhau. – MikeWyatt

Các vấn đề liên quan