7

尝试使用 Dash 运行简单仪表板时出现错误。我将 Spyder 与 Python 3.4 一起使用。我已经pip installed dash, dash_core_components, dash_html_compenents..

我的代码:

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for Python.
    '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
            ],
            'layout': {
                'title': 'Dash Data Visualization'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

这取自Dash/Plotly 网站教程

我收到以下错误:

 * Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
 * Restarting with stat
C:\Users\mwolfe\AppData\Local\Continuum\anaconda3\envs\py34\lib\site-packages\IPython\core\interactiveshell.py:2889: UserWarning:

To exit: use 'exit', 'quit', or Ctrl-D.

An exception has occurred, use %tb to see the full traceback.

SystemExit: 1

当我去http://127.0.0.1:8050/尝试查看示例仪表板时,它不会加载。

我已经尝试过操作以解决此问题,但无法使其正常工作。

4

2 回答 2

5

Pechi 的回答更新:现在设置 debug=False 也适用于 Jupyter Notebook。我在那里测试了 Matt 的代码,并且 URL 工作正常。

但是,我认为问题主要出在 use_reloader 上。您必须在 Jupyter Notebook 中将其设置为 False(根据 Plotly 文档)。所以,这也适用于我的笔记本:

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output

app = dash.Dash()

app.layout = html.Div(
html.H1(children="Hello000")
)
if __name__ == '__main__':
    app.run_server(debug=True, use_reloader=False). <---- Here

此外,请确保您之前启动的任何应用程序都已停止(ctrl + c 或简单地使用笔记本中的方形按钮(或在键盘上按两次“i”)来停止执行)。

于 2020-05-07T17:37:32.667 回答
2

设置debug=False确实解决了问题,但不适用于 Jupyter notebook 和 Spyder。当使用 notebook/spyder 执行代码时,代码会陷入困境。

将您的代码更改为debug=False并在Anaconda Navigator 附带的 PyQt 控制台中执行它。有用。

于 2019-04-08T10:08:23.390 回答