无法在具有 Anaconda 环境的 VS Code 中运行 Plotly Dash 的本地服务器



我正在使用Dash Plotly的教程进行应用程序(https://dash.plot.ly/getting-started(,它以前工作正常。现在,我似乎无法在不收到以下错误消息的情况下启动本地主机服务器:

**更新

**当我通过PyCharm运行测试服务器时它可以工作,所以不知何故Anaconda和Jupyter似乎是问题所在。

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

当我尝试再次运行服务器时,它产生了此错误:

 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

我检查了我能找到的所有论坛,但我似乎找不到任何问题的解决方案。在我擦除硬盘驱动器并重新安装Anaconda,Dash和VS代码之前,运行本地服务器工作正常。

Address already in use表示您尝试使用的端口已被其他应用程序使用。确保您正确关闭了以前可能运行过的任何Flask(达世币(服务器或终止任何剩余的进程。

如果需要使用其他端口,可以将app.run_server(debug=True)更改为app.run_server(debug=True, port=1337)

我重新启动了计算机,它起作用了!

最新更新