无法导入烧瓶应用程序

Can not import flask app

我有这样的结构:

flask_api
    api
        __init__.py
        tests
            test_base.py
    manage.py

init.py:

def create_app():
    connexion_app = connexion.App(__name__, specification_dir='swagger/')
    connexion_app.add_api('output.yaml', resolver=RestyResolver('api'),  validate_responses=True)
    app = connexion_app.app

    CORS(app)
    app.register_blueprint(utils)
    ...
    return app

在manager.py中:

from api import create_app

app = create_app()
manager = Manager(app)

@manager.command
def test():
    print(app.root_path)
    tests = unittest.TestLoader().discover(
        'api/tests',
        pattern='test*.py'
    )
    result = unittest.TextTestRunner(verbosity=2).run(tests)
    if result.wasSuccessful():
        return 0
    return 1
if __name__ == '__main__':
    manager.run()

并在 test_base.py 中:

from flask_api import app

现在,当我 运行 python menage.py 测试时,我得到错误:

  File "/home/flask_api/api/tests/test_base.py", line 7, in <module>
    from flask_api import app
ModuleNotFoundError: No module named 'flask_api

如何将应用程序导入 test_base?

在您的测试中再次从 api import create_app 导入并创建您的新应用程序实例。

很简单:

from api import create_app

毕竟,为了简单起见,您可以分配 self.app = create_app()