Ошибка импорта из файла чертежа в колбе? - PullRequest
0 голосов
/ 27 июня 2018

У меня есть такая структура файла:

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')

в апартаментах.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 голосов
/ 27 июня 2018

Услуги - это относительный импорт из endpoints.apartment. Добавление ведущего .. к импорту должно исправить вашу ошибку:

from ..services.apartment import ApartmentService

Поскольку Python3 требует, чтобы относительный импорт был явным, и вы не всегда можете выполнить его из каталога пакетов, вы также должны добавить начальный . к вашему импорту в app.py:

from .endpoints.apartments import apartments_blueprint

Чтобы сделать это явным и избежать каких-либо дополнительных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...