在 Flask 中使用 Celery 时无法导入名称 App
Cannot import name App when using Celery in Flask
我正在编写一个简单的 Flask 应用程序,它使用 Celery 运行 后台任务,但是当我尝试 运行 终端上的应用程序时,我收到以下错误消息:
Traceback (most recent call last):
File "server.py", line 2, in <module>
from flask_celery import make_celery
File "/usr/local/lib/python2.7/site-packages/flask_celery.py", line 16, in <module>
from celery.app import App, AppPickler, current_app as current_celery
ImportError: cannot import name App
这是我正在使用的代码:
from flask import Flask
from flask_celery import make_celery
app = Flask(__name__)
app.config["CELERY_BROKER_URL"] = "amqp://guest:guest@localhost:5672//"
celery = make_celery(app)
@celery.task(name='server.reverse')
def reverse(string):
return string[::-1]
@app.route("/process/<name>")
def process(name):
reverse.delay(name)
return "I sent an async request!"
if __name__ == "__main__":
app.run(debug=True)
有人知道我做错了什么吗?
谢谢
您收到错误是因为 App
不是由 celery.app
模块发布的,请参阅 the code. Also, it seems that you are using flask_celery
, which is not the recommended way 现在如何将 Flask 与 Celery 一起使用:
From Celery 3.0 the Flask-Celery integration package is no longer recommended and you should use the standard Celery API instead.
这是涵盖与 Celery 集成的 Flask 文档部分:
我正在编写一个简单的 Flask 应用程序,它使用 Celery 运行 后台任务,但是当我尝试 运行 终端上的应用程序时,我收到以下错误消息:
Traceback (most recent call last):
File "server.py", line 2, in <module>
from flask_celery import make_celery
File "/usr/local/lib/python2.7/site-packages/flask_celery.py", line 16, in <module>
from celery.app import App, AppPickler, current_app as current_celery
ImportError: cannot import name App
这是我正在使用的代码:
from flask import Flask
from flask_celery import make_celery
app = Flask(__name__)
app.config["CELERY_BROKER_URL"] = "amqp://guest:guest@localhost:5672//"
celery = make_celery(app)
@celery.task(name='server.reverse')
def reverse(string):
return string[::-1]
@app.route("/process/<name>")
def process(name):
reverse.delay(name)
return "I sent an async request!"
if __name__ == "__main__":
app.run(debug=True)
有人知道我做错了什么吗?
谢谢
您收到错误是因为 App
不是由 celery.app
模块发布的,请参阅 the code. Also, it seems that you are using flask_celery
, which is not the recommended way 现在如何将 Flask 与 Celery 一起使用:
From Celery 3.0 the Flask-Celery integration package is no longer recommended and you should use the standard Celery API instead.
这是涵盖与 Celery 集成的 Flask 文档部分: