2015-09-13 4 views
7

मैं इस समस्या में भाग रहा हूं और मुझे बिल्कुल पता नहीं है कि यह कहां से आता है।सेलेरी + Django त्रुटि: TypeError: 'सेटिंग्स' ऑब्जेक्ट सबस्क्रिप्ट करने योग्य नहीं है

मैं बिल्कुल सच है कि मैं इस परियोजना निर्देशिका भी उपयोग कर रहा हूँ के अलावा the Celery tutorial में प्रदान की एक ही कोड का उपयोग कर रहा मेरी अद्वितीय एप्लिकेशन निर्देशिका (के रूप में ऐसा है, तो models.py, views.py होने और करने के लिए 'proj' जोड़ने INSTALLED_APPS)।

अजीब हिस्सा है, मेरी स्थानीय मशीन पर इस सेटअप को आजमाते हुए, त्रुटि हमेशा हर django कमांड (माइग्रेट, खोल ...) के साथ दिखाई देती है। वर्चुअलएन्व को हटाने और पुनर्स्थापित करने के लिए इसे मिस्टरियस से ठीक किया गया। अब, ऐपोकू में ऐप को दबाते समय मुझे एक ही समस्या है और यह काम नहीं कर सकता है।

कोई संकेत? धन्यवाद!

पुनश्च: अजगर 3.4.2, Django 1.8.4, अजवाइन 3.1.18


त्रुटि ट्रैस बैक:

Running `celery -A proj worker -l info` attached to terminal... up, run.7187 
Traceback (most recent call last): 
    File "/app/.heroku/python/bin/celery", line 9, in <module> 
    load_entry_point('celery==3.1.0', 'console_scripts', 'celery')() 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/__main__.py", line 29, in main 
    main() 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/celery.py", line 80, in main 
    cmd.execute_from_commandline(argv) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/celery.py", line 732, in execute_from_commandline 
    super(CeleryCommand, self).execute_from_commandline(argv))) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/base.py", line 299, in execute_from_commandline 
    argv = self.setup_app_from_commandline(argv) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/base.py", line 429, in setup_app_from_commandline 
    self.app = self.find_app(app) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/base.py", line 449, in find_app 
    sym = self.symbol_by_name(app) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/bin/base.py", line 474, in symbol_by_name 
    return symbol_by_name(name, imp=import_from_cwd) 
    File "/app/.heroku/python/lib/python3.4/site-packages/kombu/utils/__init__.py", line 92, in symbol_by_name 
    module = imp(module_name, package=package, **kwargs) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/utils/imports.py", line 101, in import_from_cwd 
    return imp(module, package=package) 
    File "/app/.heroku/python/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/app/proj/__init__.py", line 5, in <module> 
    from .celery import app as celery_app 
    File "/app/proj/celery.py", line 17, in <module> 
    app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/app/base.py", line 277, in autodiscover_tasks 
    if self.conf.CELERY_FORCE_BILLIARD_LOGGING: 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/datastructures.py", line 336, in __getattr__ 
    return self[k] 
    File "/app/.heroku/python/lib/python3.4/site-packages/celery/datastructures.py", line 458, in __getitem__ 
    return d[key] 
    File "/app/.heroku/python/lib/python3.4/site-packages/django/utils/functional.py", line 227, in inner 
    return func(self._wrapped, *args) 
TypeError: 'Settings' object is not subscriptable 
+0

आप की सामग्री को पोस्ट कर सके अपने '/ ऐप्स/proj __ init __।/Py' और'/ऐप्स/proj/celery.py' फ़ाइलें? –

उत्तर

0

आप अजवाइन 4.0 के दस्तावेज़ का पालन कर रहे हैं, लेकिन आप सेलेरी 3.1.18, का उपयोग कर रहा है यह आपको एक त्रुटि देता है।

पाइप के साथ 4.0 से अधिक स्थापित अपने स्थापित सेलरी को अपग्रेड करें।

pip install -U celery

संबंधित मुद्दे