无法导入烧瓶应用程序
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()
我有这样的结构:
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()