我试图在端口上第一次看到带有端口代码的绘图仪表板应用程序,但是当我尝试通过任何更改重新运行它时,它显示出一个错误
OSError: [Errno 98] Address already in use
因为我在虚拟机上运行它,所以每次运行笔记本电脑单元时都无法更改端口。所以我想在同一端口上运行相同的应用程序。但我收到上述错误。以下是示例代码
import dash
import plotly.express as px
from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as HTML
from dash.dependencies import Input, Output
app = dash.Dash("SimpleExample")
app.layout = html.Div([dcc.RadioItems(id='dropdown-color',
options=[{'label': c, 'value': c.lower()}
for c in ['Red', 'Green', 'Blue']],value='red'),
html.Div(id='output-color'),dcc.RadioItems(id='dropdown-size',
options=[{'label': i, 'value': j}
for i, j in [('L','large'), ('M','medium'), ('S','small')]],
value='medium'),
html.Div(id='output-size')])
@app.callback(
dash.dependencies.Output('output-color', 'children'),
[dash.dependencies.Input('dropdown-color', 'value')])
def callback_color(dropdown_value):
return "The selected color is %s." % dropdown_value
@app.callback(
dash.dependencies.Output('output-size', 'children'),
[dash.dependencies.Input('dropdown-color', 'value'),
dash.dependencies.Input('dropdown-size', 'value')])
def callback_size(dropdown_color, dropdown_size):
return "The chosen T-shirt is a %s %s one." %(dropdown_size,
dropdown_color)
if __name__ == '__main__':
app.run_server(port = 8021, debug = True)
帮助提供可能的解决方案
老实说,jupyter并不是Web服务器的正确选择。
您面临的问题是您重新运行该单元,并且该端口已在使用中,因为上一个单元中的应用程序正在使用它。
您可以实现类似条件,例如如果应用未定义,则关闭,否则忽略。