我在单元测试模式下执行 Flask 应用程序时遇到问题。由于某种原因,同一个模块被导入了两次(当我将它作为开发服务器运行时,在烧瓶应用程序中似乎不是问题)。结构是这样的:
-- app
|
--blueprint
|-- __init__.py : import foo; from .bar import aaa
|-- foo.py : # some sqlalchemy model setup, etc
|
|-- bar
| | -- __init__.py : from bar import bbb
| -- bar.py : from app.foo import ccc
问题在于bar.py
使用函数foo.py:ccc
两次运行 sqlalchemy 模型定义(由于元数据已经注册了模型而失败)。如何避免这种冲突?如果我运行烧瓶应用程序而不是作为单元测试,我也很惊讶为什么不会发生这种情况。