python - NameError:名称 xxxxxx 未在烧瓶中定义
问题描述
在烧瓶宁静的应用程序中遇到导入错误问题,下面是项目结构。
project/
app/
views/
tasks.py
flask_celery.py
run.py
正如您在上面看到的那样,这就是项目结构,所以我的挑战是从run.py
to导入一个变量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()
推荐阅读
- node.js - nodejs mongodb insertMany抛出重复错误
- mapbox - 地图匹配总是返回“NoSegment”
- javascript - 如何为数组中的每个元素创建唯一日期?
- sql-server - 从 XML 列返回多个类别值
- python - 从xml创建数据框
- excel - VBA UDF 返回单元格编号格式
- c - 文档中的 ACSL 列表示例生成一个听起来很糟糕的警告
- python - Python中使用CNN的手势识别准确度问题
- sparql - 从 SPARQL 查询中获取完整的属性路径
- python - Ansible 和 jinja - 将双引号转义的 JSON 字符串发送到 AWS