我已经写了一个Dash应用程序,但当我运行它时,我不会得到本地主机的URL打印到我的控制台上,只要应用程序处于活动状态,脚本就保持打开状态.相反,脚本终止,我的控制台的最终输出是:

starting app...
<IPython.lib.display.IFrame at 0x238562976a0>
In [19]: 

我期望:

Dash is running on http://127.0.0.1:8050/

 * 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: off
 * Running on http://127.0.0.1:8050 (Press CTRL+C to quit)

我在一个Conda环境中工作,dash/plotly/python版本是:

plotly                    5.16.1                   pypi_0    pypi
dash                      2.11.1                   pypi_0    pypi
dash-core-components      2.0.0                    pypi_0    pypi
dash-html-components      2.0.0                    pypi_0    pypi
dash-table                5.0.0                    pypi_0    pypi
python                    3.10.9               h966fe2a_2

Dash是按照建议的here通过pip导入的,并且与DashBundle 在一起,而不是由我显式安装--最初我将两者与Conda Forge分开安装,这给了我预期的正常行为(URL打印到控制台等),但应用程序本身是broken(所以我重新设计了我的环境,并获得了此处描述的问题).当我在浏览器中导航到本地主机时,应用程序本身似乎确实可以运行,但我怀疑它不会更新,因为应用程序似乎已经停止在控制台中运行.

我的应用程序是:

import plotly.graph_objects as go
from dash import Dash, callback, html, dcc, dash_table, Input, Output, State, MATCH, ALL

app = Dash(__name__)

user_files = list(app_data.keys())

app.layout = html.Div([dcc.Tabs(id = 'user_tabs',
                       value = 'Single metric',
                       vertical = True,
                       children = [dcc.Tab(label = 'Single metric', 
                                   children=[html.Div([dcc.Dropdown(user_files, 
                                             user_files[0], 
                                             id='json_dropdown')
                                             ]),
                                             html.Div([dcc.Dropdown(id='record_dropdown')
                                                      ]),
                                             html.Div([dcc.Dropdown(id='bgc_dropdown')
                                                      ]),
                                             html.Div([dcc.Dropdown(['vis1', 
                                                                     'vis2', 
                                                                     'vis3', 
                                                                     'vis4'], 
                                                                    'vis1', 
                                                                    id='vis_dropdown')
                                                      ]),
                                             html.Div([dcc.Dropdown(mib_values, 
                                                       mib_values[0], 
                                                       id='mib_value')
                                                      ],id = 'mib_tab_style'),
                                             html.Div([dcc.Dropdown(operations, 
                                                       operations[0], 
                                                       id='mib_operation')
                                                       ],id = 'operation_tab_style'),
                                             html.Div([dcc.Graph(id='single_graph')],
                                                      style = {'width': '50%'}),
                                                 ])]
                               )])

if __name__ == '__main__':
    print ('launching app')
    app.run(debug = False)

推荐答案

try 运行您的代码,

python your_app.py

而不是直接从Spyder逃跑.

一些Spyder专家应该对此有更多的了解,

关于这一点,我的假设是,同样不是Spyder专家,理想情况下Run file应该运行上面的命令,但假设Spyder是一种ipykernel,它可能不会将您的完整代码作为主文件执行,而不是通过导入代码来运行它?(不确定),您可以查看__name__,它可能不是__main__

Python相关问答推荐

将numpy数组存储在原始二进制文件中

对于一个给定的数字,找出一个整数的最小和最大可能的和

按顺序合并2个词典列表

从dict的列中分钟

在np数组上实现无重叠的二维滑动窗口

Stacked bar chart from billrame

如何设置视频语言时上传到YouTube与Python API客户端

部分视图的DataFrame

提取相关行的最快方法—pandas

用砂箱开发Web统计分析

为什么\b在这个正则表达式中不解释为反斜杠

如何使用Numpy. stracards重新编写滚动和?

matplotlib图中的复杂箭头形状

polars:有效的方法来应用函数过滤列的字符串

如何使用正则表达式修改toml文件中指定字段中的参数值

使用Python异步地持久跟踪用户输入

python3中np. divide(x,y)和x/y有什么区别?'

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格

ValueError:必须在Pandas 中生成聚合值

Pandas:根据相邻行之间的差异过滤数据帧