python - 无法导入烧瓶应用程序
问题描述
我有这样的结构:
flask_api
api
__init__.py
tests
test_base.py
manage.py
在初始化.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 test 我得到错误:
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()
推荐阅读
- python - 在每个模块中导入相同的包
- sql - 获取列总和并用于计算总数的百分比,为什么不适用于 CTE
- c++ - 难以在 for 循环中定位问题
- php - 修改注册后台 Prestashop
- html - html中的行和制表符的结尾
- google-analytics - 是否可以使用来自 Google Analytics 的数据在 Google 电子表格中制作数据透视表?
- node.js - docker-compose node 和 mongo 之间的连接
- jupyter - jupyterlab/hub-extension@0.12.0" 与当前的 JupyterLab 不兼容
- c++ - 将文件导入到存储在向量中的结构
- docker - 如何使用 docker-compose 在 Divio Cloud 项目中定义其他服务?