首页 > 解决方案 > NameError:名称 xxxxxx 未在烧瓶中定义

问题描述

在烧瓶宁静的应用程序中遇到导入错误问题,下面是项目结构。

project/
   app/
     views/
        tasks.py
        flask_celery.py
   run.py

正如您在上面看到的那样,这就是项目结构,所以我的挑战是从run.pyto导入一个变量tasks.py。但是当我运行应用程序时出现错误NameError: name 'celery_access' is not defined

所以这是我的 run.py 文件:

from app.starwars.star_wars import StarWars
from app.utils.flask_celery import make_celery

app = Flask(__name__)

# configure celery
app.config.update(
    CELERY_BROKER_URL='redis://redis:6379/0',
    CELERY_RESULT_BACKEND='redis://redis:6379/0'
)

celery_access = make_celery(app)

# secret key
app.secret_key = "xxxx"
api = Api(app)

然后,在tasks.py文件中,我可以在其中访问变量名称celery_access ,如下所示:

from run import celery_access

@celery_access.task()
def paginate_requested_data():
    return Hello World''

如何解决导入问题?

标签: pythonflaskcelery

解决方案


.py 文件中的函数(可以(当然)在不同的目录中)可以通过先写入目录然后不带 .py 扩展名的文件名来简单地导入:

from directory_name.file_name import function_name

稍后使用:function_name()


推荐阅读