Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error Trying to initialize Dash in Spyder IPython Console

I'm getting an error when trying to run a simple dashboard using Dash. I'm using Spyder with Python 3.4. I've pip installed dash, dash_core_components, dash_html_compenents..

My code:

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)

This was taken right from Dash/Plotly website tutorial

I get the following error:

 * 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

When I go to http://127.0.0.1:8050/ to try to view the example dashboard It won't load.

I've tried this in order to fix the issue, but haven't been able to get that to work.

like image 686
Matt W. Avatar asked Mar 19 '18 19:03

Matt W.


People also ask

Does Spyder work with IPython?

Now Spyder, Python, IPython seem to work fine, however, when trying to open a new IPython console in Spyder, I get the following error:

Why is my Spyder string library not working?

If so, this is a basic user error and a very bad idea because it shadows the builtin string library, so you should rename or remove it to fix the problem. If that's not it, try the other steps in the Spyder troubleshooting guide since something's likely wrong with your install in that case.

How to set up Spyder to download modules from local machine?

In fact, it is enough to set up on “Tool/PYTHONPATH manager” on Spyder the path of where your local machine is downloading and storing the installed modules via pip, save, close and re-launch Spyder. Easy, no? :) Here some screenshots for guidance:

What is the relationship between Spyder and Anaconda?

In fact, Spyder has no formal relationship (financial or otherwise) with Anaconda, and we have no direct control over your installation, machine, or the third-party dependencies upon which Spyder relies.


Video Answer


2 Answers

Update on Pechi's answer: now setting debug=False works inside Jupyter Notebook as well. I tested Matt's code in there and the URL works fine.

However, I think the problem is mainly with the use_reloader. You have to set that to False in Jupyter Notebook (according to Plotly documentation). So, this also works in notebook for me:

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

Also, make sure any previous app you have initiated is stopped already (ctrl + c or simply use the square button in notebook (or press 'i' twice on your keyboard) for stopping the execution).

like image 115
pegah Avatar answered Oct 03 '22 09:10

pegah


Setting debug=False does solve the problem, but not with Jupyter notebook and Spyder. The code goes into limbo when executed with notebook/spyder.

Change your code to debug=False and execute it in PyQt console that comes with Anaconda Navigator. It works.

like image 39
Pechi Avatar answered Oct 03 '22 10:10

Pechi