2016-11-23 11 views
0

に 'セロリ' という名前のモジュールは、私がprojの/ projの/ celery.py Celery: First steps with djangoはImportError:projの/ projの/ celery.py

でチュートリアルを次されていない:

from __future__ import absolute_import, unicode_literals 
import os 
from celery import Celery 

# set the default Django settings module for the 'celery' program. 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings') 

app = Celery('proj') 

# Using a string here means the worker don't have to serialize 
# the configuration object to child processes. 
# - namespace='CELERY' means all celery-related configuration keys 
# should have a `CELERY_` prefix. 
app.config_from_object('django.conf:settings', namespace='CELERY') 

# Load task modules from all registered Django app configs. 
app.autodiscover_tasks() 


@app.task(bind=True) 
def debug_task(self): 
    print('Request: {0!r}'.format(self.request)) 

のproj/projの/ INITの.py:

from __future__ import absolute_import, unicode_literals 

# This will make sure the app is always imported when 
# Django starts so that shared_task will use this app. 
from .celery import app as celery_app 

__all__ = ['celery_app'] 

sampleapp/tasks.py:

# Create your tasks here 
from __future__ import absolute_import, unicode_literals 
from celery import shared_task 


@shared_task 
def add(x, y): 
    return x + y 


@shared_task 
def mul(x, y): 
    return x * y 


@shared_task 
def xsum(numbers): 
    return sum(numbers) 

私は正しく私はpython3 manage.py runserver

これは、エラーメッセージで実行を開始するとき、それはしかし、私は、エラーメッセージが表示されました、その後かなり確信している:私はすでに、同様セロリをインストールしている

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python3.5/dist-packages/django/core/management/__init__.py", line 316, in execute 
    settings.INSTALLED_APPS 
    File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 53, in __getattr__ 
    self._setup(name) 
    File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/usr/local/lib/python3.5/dist-packages/django/conf/__init__.py", line 97, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/app/main/actinbox/__init__.py", line 5, in <module> 
    from .celery import app as celery_app 
    File "/app/main/actinbox/celery.py", line 3, in <module> 
    from celery import Celery 
ImportError: No module named 'celery' 

をrabbitmq-serverとして。

あなたは何が起こったか考えていますか? 私は何かを見逃しましたか?私は、ログで見たよう

私のセロリのバージョンは1.10.2 のpython 3.5.2

+1

'セロリ 'がインストールされていますか?そうでない場合は、 'sudo pip3 install celery'(python3を使用しているときに' pip'の代わりに 'pip3'を実行してください) –

+0

oh thanks ..私は試してみます –

+1

あなたのファイルに' celery.py'という名前を使わないでください。 import'は期待されるライブラリではなくファイルを読み込みます。 – furas

答えて

1

4.0.0 ジャンゴです - あなたはとても基本的にPythonがそこにセロリを見つけようと、プロジェクトcelery.py内のファイルの名前 - 名前を変更しようとしました:)

+0

これはすばらしいアドバイスです...ありがとうございます –

+0

しかし、 –

関連する問題