Petter H
Petter H

Reputation: 41

Can't run local server for Plotly Dash in VS Code with Anaconda environment

I'm using Dash Plotly's tutorial for an app (https://dash.plot.ly/getting-started) and it worked fine before. Now I can't seem to start the local host server without getting the following error message:

** Update ** It works when I run the test server through PyCharm, so somehow Anaconda and Jupyter seems to be the problem.

Running on http://127.0.0.1:8050/
Debugger PIN: 749-807-877
 * Serving Flask app "__main__" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
An exception has occurred, use %tb to see the full traceback.

SystemExit: 1

When I try to run the server again it produced this error:

 in 
     19 
     20 if __name__ == '__main__':
---> 21     app.run_server(debug=True)

/anaconda3/lib/python3.7/site-packages/dash/dash.py in 
run_server(self, port, debug, dev_tools_ui, dev_tools_props_check, 
dev_tools_serve_dev_bundles, dev_tools_hot_reload, 
dev_tools_hot_reload_interval, dev_tools_hot_reload_watch_interval, 
dev_tools_hot_reload_max_retry, dev_tools_silence_routes_logging, 
**flask_run_options)
   1501             self.logger.info('Debugger PIN: %s', 
debugger_pin)
   1502 
-> 1503         self.server.run(port=port, debug=debug, 
**flask_run_options)

/anaconda3/lib/python3.7/site-packages/flask/app.py in run(self, 
host, port, debug, load_dotenv, **options)
    941 
    942         try:
--> 943             run_simple(host, port, self, **options)
    944         finally:
    945             # reset the first request information if the 
development server



 /anaconda3/lib/python3.7/site-packages/werkzeug/serving.py in 
    run_simple(hostname, port, application, use_reloader, use_debugger, 
    use_evalex, extra_files, reloader_interval, reloader_type, threaded, 
    processes, request_handler, static_files, passthrough_errors, 
    ssl_context)
        793             s = socket.socket(address_family, 
    socket.SOCK_STREAM)
        794             s.setsockopt(socket.SOL_SOCKET, 
   socket.SO_REUSEADDR, 1)
    --> 795             s.bind(get_sockaddr(hostname, port, 
    address_family))
        796             if hasattr(s, 'set_inheritable'):
        797                 s.set_inheritable(True)

    OSError: [Errno 48] Address already in use


    Forums and FAQs

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

    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

    app.layout = html.Div([
        dcc.Input(id='my-id', value='initial value', type='text'),
        html.Div(id='my-div')
    ])


    @app.callback(
        Output(component_id='my-div', component_property='children'),
        [Input(component_id='my-id', component_property='value')]
    )
    def update_output_div(input_value):
        return 'You\'ve entered "{}"'.format(input_value)


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


    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Running on http://127.0.0.1:8050/
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
    Debugger PIN: 715-884-879
     * Serving Flask app "__main__" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: on
    ---------------------------------------------------------------------------
    OSError                                   Traceback (most recent call last)
     in 
         19 
         20 if __name__ == '__main__':
    ---> 21     app.run_server(debug=True)

    /anaconda3/lib/python3.7/site-packages/dash/dash.py in run_server(self, port, debug, dev_tools_ui, dev_tools_props_check, dev_tools_serve_dev_bundles, dev_tools_hot_reload, dev_tools_hot_reload_interval, dev_tools_hot_reload_watch_interval, dev_tools_hot_reload_max_retry, dev_tools_silence_routes_logging, **flask_run_options)
       1501             self.logger.info('Debugger PIN: %s', debugger_pin)
       1502 
    -> 1503         self.server.run(port=port, debug=debug, **flask_run_options)

    /anaconda3/lib/python3.7/site-packages/flask/app.py in run(self, host, port, debug, load_dotenv, **options)
        941 
        942         try:
    --> 943             run_simple(host, port, self, **options)
        944         finally:
        945             # reset the first request information if the development server




 /anaconda3/lib/python3.7/site-packages/werkzeug/serving.py in run_simple(hostname, port, application, use_reloader, use_debugger, use_evalex, extra_files, reloader_interval, reloader_type, threaded, processes, request_handler, static_files, passthrough_errors, ssl_context)
        793             s = socket.socket(address_family, socket.SOCK_STREAM)
        794             s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    --> 795             s.bind(get_sockaddr(hostname, port, address_family))
        796             if hasattr(s, 'set_inheritable'):
        797                 s.set_inheritable(True)

    OSError: [Errno 48] Address already in use

I'm checked all the forums I can find for this issue, but I can't seem to find any solutions to what is the issue. Running the local server worked fine before I wiped my hard drive and reinstalled Anaconda, Dash and VS code.

Upvotes: 4

Views: 2888

Answers (2)

Chemay Shola
Chemay Shola

Reputation: 1

I restarted my computer, and it worked!

Upvotes: -2

orangeInk
orangeInk

Reputation: 1410

Address already in use means that the port you're trying to use is already in use by another application. Make sure that you properly shut down any Flask (Dash) servers you may have run previously or kill any remaining processes.

If you need to use a different port you can change app.run_server(debug=True) to app.run_server(debug=True, port=1337)

Upvotes: 1

Related Questions