Reputation: 41
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
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