问题描述
我有一个连字符和以下4个模块。应用程序需要从dashboard.py和tab_OIA.py导入,因为这两个模块都可以与应用程序一起使用。这也是情节破折号网站推荐的方式:
-
app.py:
import dash app = dash.Dash(__name__,suppress_callback_exceptions=True)
-
dashboard.py:
from app import app from tab_OIA import tab_OIA_layout . . . if __name__ == '__main__': app.run_server(debug=True,threaded=True)
-
tab_OIA.py:
from app import app import data tab_OIA_layout = html.Div(.....) @app.callback() def function(): return ..
-
data.py:
import pandas *calculate stuff* print("Everything calculated")
当我在cmd中运行dashboard.py时,它会显示以下内容,并且“计算的所有内容”都会出现两次:
C:\Users\.spyder-py3>python dashboard.py
Everything calculated
Running on http://127.0.0.1:8050/
Debugger PIN: 111-463-400
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production Wsgi server instead.
* Debug mode: on
Everything calculated
Running on http://127.0.0.1:8050/
Debugger PIN: 101-604-170
两次计算数据需要很多时间。为什么会这样呢?有办法避免这种情况吗?
解决方法
您两次导入app.py
。要解决此问题,请尝试从from app import app
中删除dashboard.py
。
#from app import app
from tab_OIA import *
.
.
.
if __name__ == '__main__':
app.run_server(debug=True,threaded=True)