我在烧瓶 restful 应用程序中遇到导入错误问题,以下是项目结构。
project/
app/
views/
tasks.py
flask_celery.py
run.py
正如您在上面看到的,这就是项目结构,所以我的挑战是将变量从run.py
导入到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''
如何解决导入?
文件中的.py函数(当然(当然(可以位于不同的目录中(可以通过先写入目录,然后不带.py扩展名的文件名来简单地导入:
from directory_name.file_name import function_name
后来使用:function_name((