Python: невозможно импортировать классы из вышестоящего каталога - PullRequest
0 голосов
/ 26 мая 2020

Я учусь flask. У меня есть структура каталогов, которая выглядит примерно так.

    project
    - controllers
    -- auth.py
    -- main.py
    - db
    -- setup.py
    - models
    -- models.py
    - templates
    -- base.html
    -- index.html
    -- login.html
    -- signup.html
    -- 404.html
    -__init__.py

Файл init .py выглядит так

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy

    # init SQLAlchemy so we can use it later in our models
    db = SQLAlchemy()


    def create_app():
        app = Flask(__name__)

        app.config['SECRET_KEY'] = '9OLWxND4o83j4K4iuopO'
        app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/mission_to_mars'

        db.init_app(app)

        # blueprint for auth routes in our app
        from .controllers.auth import auth as auth_blueprint
        app.register_blueprint(auth_blueprint)

        # blueprint for non-auth parts of app
        from .controllers.main import main as main_blueprint
        app.register_blueprint(main_blueprint)

        return app

Я пытаюсь импортировать переменная db и функция create_app () в controllers / auth.py, controllers / main.py, models / models.py, db / setup.py

Я пробовал следующие синтаксисы

    from .. import db, create_app

, что дает ошибку:

    ImportError: attempted relative import with no known parent package

Я также пробовал

    from project import db, create_app

, что дает ошибку

    ModuleNotFoundError: No module named 'project'

Я хочу знать, как я могу импортировать классы из разных каталогов, чтобы я мог использовать их в дальнейшем в проекте.

Заранее спасибо

...