gpt4 book ai didi

python - 开始 celery : AttributeError: 'module' object has no attribute 'celery'

转载 作者:IT老高 更新时间:2023-10-28 21:07:16 26 4
gpt4 key购买 nike

我尝试从命令行启动 Celery 工作服务器:

celery -A tasks worker --loglevel=info

tasks.py中的代码:

import os
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"

from celery import task

@task()
def add_photos_task( lad_id ):
...

我得到下一个错误:

Traceback (most recent call last):
File "/usr/local/bin/celery", line 8, in <module>
load_entry_point('celery==3.0.12', 'console_scripts', 'celery')()
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/__main__.py", line 14, in main
main()
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/celery.py", line 946, in main
cmd.execute_from_commandline(argv)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/celery.py", line 890, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 177, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 295, in setup_app_from_commandline
self.app = self.find_app(app)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 313, in find_app
return sym.celery
AttributeError: 'module' object has no attribute 'celery'

有人知道为什么找不到 'celery' 属性吗?谢谢你的帮助。

操作系统是 Linux Debian 5。

编辑。可能是线索。谁能解释一下函数的下一条注释(为什么我们必须确保它在当前目录中找到模块)?

# from celery/utils/imports.py
def import_from_cwd(module, imp=None, package=None):
"""Import module, but make sure it finds modules
located in the current directory.

Modules located in the current directory has
precedence over modules located in `sys.path`.
"""
if imp is None:
imp = importlib.import_module
with cwd_in_path():
return imp(module, package=package)

最佳答案

我忘记在tasks.py中创建一个 celery 对象:

from celery import Celery
from celery import task

celery = Celery('tasks', broker='amqp://guest@localhost//') #!

import os

os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"

@task()
def add_photos_task( lad_id ):
...

之后我们就可以正常启动任务了:

celery -A tasks worker --loglevel=info

关于python - 开始 celery : AttributeError: 'module' object has no attribute 'celery' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com