gpt4 book ai didi

python - 属性错误 : 'Flask' object has no attribute 'user_options'

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

我正在尝试从以下文档设置这个基本示例:

http://flask.pocoo.org/docs/patterns/celery/

但到目前为止,我不断收到以下错误:

AttributeError: 'Flask' object has no attribute 'user_options'

我使用的是 celery 3.1.15。

from celery import Celery

def make_celery(app):
celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
TaskBase = celery.Task
class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs)
celery.Task = ContextTask
return celery

例子:

from flask import Flask

app = Flask(__name__)
app.config.update(
CELERY_BROKER_URL='redis://localhost:6379',
CELERY_RESULT_BACKEND='redis://localhost:6379'
)
celery = make_celery(app)


@celery.task()
def add_together(a, b):
return a + b

回溯错误:

Traceback (most recent call last):
File "/usr/local/bin/celery", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/celery/__main__.py", line 30, in main
main()
File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 81, in main
cmd.execute_from_commandline(argv)
File "/usr/local/lib/python2.7/dist-packages/celery/bin/celery.py", line 769, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/usr/local/lib/python2.7/dist-packages/celery/bin/base.py", line 305, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/usr/local/lib/python2.7/dist-packages/celery/bin/base.py", line 473, in setup_app_from_commandline
user_preload = tuple(self.app.user_options['preload'] or ())
AttributeError: 'Flask' object has no attribute 'user_options'

最佳答案

基于 Flask Celery 的后台任务页面 (http://flask.pocoo.org/docs/patterns/celery/) 建议这样启动 celery:

celery -A your_application worker

The your_application string has to point to your application’s package or module that creates the celery object.

假设代码驻留在 application.py 中,显式指向 celery 对象(不仅仅是模块名称)避免了错误:

celery -A application.celery worker

关于python - 属性错误 : 'Flask' object has no attribute 'user_options' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884951/

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