无法启动工作人员,没有名为“ celery”的模块

时间:2018-08-27 14:52:33

标签: python django celery

我尝试在Web应用程序中包含任务,但无法开始celery工作。

我的项目结构如下:

  

网站/网站-> init.py,settings.py,urls.py,wsgi.py

     

网站/索引-> init.py,celery_app.py,tasks.py

索引是我要在其中运行任务的起始页面。

index / celery_app.py 具有以下代码:

from __future__ import absolute_import, unicode_literals
from celery import Celery

app = Celery('index',
         broker='amqp://localhost//',
         backend='amqp://',
         include=['index.tasks'])

 # Optional configuration, see the application user guide.
 app.conf.update(
    result_expires=3600,
   )

if __name__ == '__main__':
app.start()

index / tasks.py

from __future__ import  absolute_import
from .celery_app import app

@app.task
def test_func():
    print("Test Background Task")

当我想使用 celery -A索引worker --loglevel = info 启动worker时,出现以下错误:ModuleNotFoundError:没有名为“ celery”的模块。 我在索引文件夹中运行命令提示符。

其他类似问题的解决方案也无济于事。

我的包裹的屏幕截图:Installed packages

4 个答案:

答案 0 :(得分:1)

您的文件结构有问题。您的celery应用程序应与settings.py

位于同一文件夹中
  

网站/网站-> init.py,settings.py,urls.py,wsgi.py,celery_app.py

     

网站/索引-> init.py,tasks.py

以及网站文件夹中的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_app import app as celery_app

__all__ = ['celery_app']

答案 1 :(得分:0)

我找到了解决方案。问题是命令提示符。我无法使用“正常”命令提示符。我没有打开普通的conda环境的命令提示符,而是正常运行了。

对于每个想知道您可以在哪里找到提示/术语的人:

  

打开Anaconda Navigator->环境->选择环境->   单击箭头->打开终端,然后使用cd导航(如果您   使用Windows)到您想要的位置。

答案 2 :(得分:0)

只写

    app = Celery(
    "SARyS",
    broker='pyamqp://guest:guest@rabbitmq.insertmendoza.com.ar',
    include=["SARyS.Apps.TaskManager.Tasks"]
)

答案 3 :(得分:-1)

要安装Celery

pip install -U Celery

pip install celery

要以Python导入Celery库

from celery import Celery

测试它是否正常工作

app = Celery('tasks', broker='pyamqp://guest@localhost//')

@app.task

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

我希望它会有所帮助。