从烧瓶中的蓝图文件导入错误?

时间:2018-06-27 02:58:10

标签: python flask

我具有这样的文件结构:

endpoints/
    __init__.py
    apartments.py
services/
    __init__.py
    apartment.py
__init__.py
app.py

在app.py

from flask import Flask

from endpoints.apartments import apartments_blueprint

app = Flask(__name__)

app.register_blueprint(apartments_blueprint, url_prefix='/apartments')

在apartments.py中:

from flask import Blueprint, request
from services.apartment import ApartmentService

apartments_blueprint = Blueprint('apartments', __name__)


@apartments_blueprint.route('/create', methods=['POST'])
def create():
    print(request.data)
    ApartmentService.create_apartment('asdf')

但是,当我运行此flask run时,它说:

ImportError: No module named services.apartment

1 个答案:

答案 0 :(得分:0)

服务是从endpoints.apartment开始的相对导入。在导入中添加前导..可以更正您的错误:

from ..services.apartment import ApartmentService

由于Python3要求显式的相对导入,并且您可能并不总是从package目录执行此操作,因此还应在.的导入中添加前导app.py

from .endpoints.apartments import apartments_blueprint

使其清晰明了,并避免任何其他问题。