I copied your code, I had to make one adjustment, as I run dash on a raspberry pi without windowing system I had to put in host=‘0.0.0.0’:
if __name__ == '__main__':
app.run_server(debug=True, host='0.0.0.0')
resulting in:
pi@rpizolder ~/bin $ python testdash.py
* Running on http://0.0.0.0:8050/
* Restarting with reloader
192.168.2.57 - - [13/Sep/2017 20:59:45] "GET / HTTP/1.1" 200 -
192.168.2.57 - - [13/Sep/2017 20:59:45] "GET /_dash-layout HTTP/1.1" 200 -
192.168.2.57 - - [13/Sep/2017 20:59:45] "GET /_dash-dependencies HTTP/1.1" 200 -
192.168.2.57 - - [13/Sep/2017 20:59:45] "GET /_dash-routes HTTP/1.1" 200 -
and:
$ pip freeze | grep dash
dash==0.18.3
dash-renderer==0.9.0