【发布时间】:2019-08-01 20:25:28
【问题描述】:
我正在尝试将 Celery 添加到我现有的 Flask 应用程序之上,我在下面分享了我的项目文件结构。我的项目中没有__init__.py 文件。
我在 jobs.py 有任务 run_job ,但是从 app.py 我无法导入我创建的 celery 对象。但我收到以下错误。我相信由于我的项目结构并且没有初始化文件而出现错误。有没有办法在不使用__init__.py
ImportError: cannot import name 'celery'
<pre>+ root/
- flask-app/
* app.py
* tasks.py
* jobs.py
* jobs_namespace.py</pre>
我的 app.py 看起来像:
from flask import Flask
from tasks import make_celery
APP = Flask(__name__)
...
celery = make_celery(APP) # cannot import in jobs.py
我的任务.py:
from celery import Celery
def make_celery(app):
...
我的工作.py
from app import celery
@celery.task()
def run_job():
...
我的jobs_namescape.py:
@api.route("/")
def home():
result = jobs.run_job().apply_async(args=None, countdown=60)
【问题讨论】:
-
在
app.py中,您命名了一个变量celery,这可能会导致问题?不确定。 -
@Poojan 该变量存储
Celery对象我正在尝试导入该变量 -
您是否尝试重命名变量 celery?如果这不是问题,可以在导入 celery 之前尝试在 jobs.py 中使用 sys.path.append("path/to/current/directory") 将当前目录添加到路径?