Python 3.x dash应用程序中出现重复的回调输出错误

Python 3.x dash应用程序中出现重复的回调输出错误,python-3.x,callback,plotly-dash,Python 3.x,Callback,Plotly Dash,我在dash应用程序中遇到错误。错误:“您已经为ID为“prediction”且属性为“children”的输出分配了回调。输出只能有一个回调函数。请尝试将输入和回调函数组合到一个函数中。” 我的代码中只有一个回调函数 如何解决这个问题 我的代码如下: model_data = pd.read_csv("data.csv") style = {'padding': '1.5em'} app.layout = html.Div([ dcc.Markdown(&

我在dash应用程序中遇到错误。错误:“您已经为ID为“prediction”且属性为“children”的输出分配了回调。输出只能有一个回调函数。请尝试将输入和回调函数组合到一个函数中。”

我的代码中只有一个回调函数

如何解决这个问题

我的代码如下:


model_data = pd.read_csv("data.csv")



style = {'padding': '1.5em'}

app.layout = html.Div([
    dcc.Markdown("""
        ### Predict
        

    """),

    html.Div(id='prediction-content', style={'fontWeight': 'bold'}),

   
    html.Div([
        dcc.Markdown('###### Input1'),
        dcc.Dropdown(
            id='Input1',
            options=[{'label': 1, 'value': 1}],
            value= 1
        ),
    ], style=style),
        

  html.Div([
        dcc.Markdown('###### Input2'),
        dcc.Slider(
            id='Input2',
            min=23,
            max=27,
            step=0.5,
            value=23,
            tooltip={'always_visible': True},
            marks={
        23: {'label': '23'},
        24: {'label': '24'},
        25: {'label': '25'},
        26: {'label': '26'}
    },
    included=False
)  
      
    ], style=style),
        
        
        
     html.Div([
        dcc.Markdown('###### Input3'),
        dcc.Slider(
            id='Input3',
            min=10,
            max=50,
            step=1,
            value=30,
            tooltip={'always_visible': True},
            marks={
        10: {'label': '10'},
        20: {'label': '20'},
        30: {'label': '30'},
        40: {'label': '40'},
        50: {'label': '50'}
    },
    included=False
)  
      
    ], style=style),
        
   
])


@app.callback(
    Output('prediction-content', 'children'),
    [Input('Input1', 'value'),
     Input('Input2', 'value'),
     Input('Input3', 'value')])
def predict(a, b, c):
    data2 = pd.DataFrame(data = [[a, b, c,]], 
                      columns = ['Input1', 'Input2','Input3']
                                 , index = [36]) 
    
    data3 = model_data.combine_first(data2)
    
    #### full function hidden due to confidentiality
    def calculate(df,i,j):
       ###
       ####
       return(a1)
    output = a1*2
        
    results = f'Result is ${output:,.0f}.'
    return results
    
    
if __name__ == '__main__':
    app.run_server(debug=True)

我在使用Jupiter notebook时也遇到了同样的问题,但通过关闭服务器并重新启动内核解决了这个问题。我假设回调函数只分配了一次函数,如果您再次尝试重新分配函数,它就会通过这个错误。我猜只有在您使用热重新加载时才会抛出此错误。

您能否发布一个完整的、产生错误的最小示例?@emher,谢谢您的回复。这是一个完整的例子。我刚刚屏蔽了一个函数(由于机密性问题),它执行一次计算。我使用滑块选项输入输入,但无法获得所需的输出。输出应返回最终计算值。相反,我得到了重复的回调错误。我的代码中只有一个回调函数。