【发布时间】:2017-02-03 19:41:05
【问题描述】:
在我的 Flask 应用程序中集成 Celery 时遇到问题。 这是回购https://github.com/theobouwman/community-python。
我通过运行 app.py 来启动我的应用程序,它会导入我的应用程序(其中添加了蓝图和配置)和 Celery。
在/tasks/add.py 中,我有一个示例任务,并在其中再次为@celery.task 装饰器导入Celery 对象。
到那时一切正常。我可以运行我的 Flask 应用程序并运行 Celery worker。
但是当我尝试从蓝图中的控制器内触发任务时,就像这里 https://github.com/theobouwman/community-python/blob/master/auth/controllers/RegistrationController.py#L38 它说它无法导入它,这是一个逻辑反应。
Traceback (most recent call last):
File "app.py", line 2, in <module>
from flask_app import app
File "/development/projects/python/Community/flask_app.py", line 4, in <module>
from auth.routes import auth
File "/development/projects/python/Community/auth/routes.py", line 3, in <module>
from .controllers import RegistrationController, AuthenticationController, LogoutController
File "/development/projects/python/Community/auth/controllers/RegistrationController.py", line 10, in <module>
from tasks.add import add
File "/development/projects/python/Community/tasks/add.py", line 1, in <module>
from app import celery
File "/development/projects/python/Community/app.py", line 2, in <module>
from flask_app import app
ImportError: cannot import name 'app'
我不知道如何解决这个导入周期,这就是这个问题的原因。我用谷歌搜索了 3 个小时,但找不到解决方案。 我希望这里有人可以帮助我。
空气中有 Flask Slack 或 Gitter 吗?
提前致谢。
【问题讨论】:
-
我的解决方法不同,请查看这个答案:stackoverflow.com/a/70801192/3112724
标签: python flask celery python-import