visual-studio - 无法在具有 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 (Dash) 服务器或终止任何剩余进程。
如果您需要使用不同的端口,您可以更改app.run_server(debug=True)
为app.run_server(debug=True, port=1337)
推荐阅读
- php - Laravel 项目运行 php artisan serve 命令时出现未定义属性错误
- python - 如何使用 pygrib expand_reduce 功能?
- c++ - 处理子类的独特方法
- javascript - 如何为复数数组定义 Graphql 类型
- mysql - Django - 通过模型删除外键约束失败
- node.js - 笑话:如何模拟来自控制器的数据库响应?
- centos - Centos 7.9 到 Centos 8.4 升级
- .net-core - 未能在 Blazor 应用中的资源的“完整性”属性中找到有效的摘要
- sql - 在 SQL 中使用参数创建或替换存储过程
- spring - 如何使用 Postman 将模型属性发送到 Spring 控制器