Ubuntu本地服务器运行Dash示例报错:Layout需为Dash组件或返回组件的函数
问题解决指引
错误原因
你的代码中app.layout直接赋值了组件列表[html.Div(children='Hello World')],但Dash要求layout必须是单个Dash组件,或者返回单个Dash组件的函数,列表本身不属于合法的布局类型,因此触发报错。
修正方案
有两种可行的修正方式:
方式1:直接使用单个组件作为布局
将布局代码修改为单个html.Div组件:
from dash import Dash, html app = Dash() # 去掉外层的列表,直接赋值单个组件 app.layout = html.Div(children='Hello World') if __name__ == '__main__': app.run_server(debug=True, host='0.0.0.0')
方式2:用父组件包裹多组件列表(如果后续需要添加多个组件)
如果你的布局需要包含多个组件,必须将列表放在一个父容器组件(比如html.Div)内部:
from dash import Dash, html app = Dash() # 用外层html.Div包裹组件列表 app.layout = html.Div([ html.Div(children='Hello World'), html.H1('这是一个标题') ]) if __name__ == '__main__': app.run_server(debug=True, host='0.0.0.0')
验证说明
修改后重新运行代码,即可正常启动Dash应用,访问http://你的服务器IP:8050就能看到页面内容。
内容的提问来源于stack exchange,提问作者skywalker
相关产品推荐
相关产品推荐

