在Databricks中使用Plotly Dash报错:'DummyMod'对象无startswith属性
解决Databricks中Dash初始化的'DummyMod'属性错误
错误原因
Databricks Notebook环境下,__name__变量不是常规Python脚本中的字符串类型,而是Databricks内部的DummyMod对象。Dash的Dash构造函数要求第一个参数为字符串(用于确定资源路径),因此传入__name__会触发'DummyMod' object has no attribute 'startswith'错误。
解决方案
直接给Dash构造函数传递字符串类型的参数,替代__name__:
方法1:使用固定字符串作为应用名称
from dash import Dash, dash_table, dcc, html from dash.dependencies import Input, Output, State # 用自定义字符串替代__name__ app = Dash("databricks_dash_app")
方法2:转换__name__为字符串
如果需要保留与模块相关的标识,可以将__name__强制转换为字符串:
app = Dash(str(__name__))
额外注意事项(Databricks运行Dash补充)
- 启动服务时需指定
host="0.0.0.0",允许外部访问:app.run_server(host="0.0.0.0", port=8050, debug=True) - Databricks中需通过端口转发或Workspace的Web终端访问应用,具体可在运行后通过Databricks的端口映射功能获取访问地址。
内容的提问来源于stack exchange,提问作者Enayat
相关产品推荐
相关产品推荐

