ModuleNotFoundError: No module named ‘dash.long_callback‘报错解决
错误信息
C:\Users\zhubayi>python -m merlion.dashboard Traceback (most recent call last): File "runpy.py", line 197, in _run_module_as_main File "runpy.py", line 87, in _run_code File "D:\environment\python\python-3.9.13\lib\site-packages\merlion\dashboard\__main__.py", line 7, in <module> from merlion.dashboard.server import app File "D:\environment\python\python-3.9.13\lib\site-packages\merlion\dashboard\server.py", line 19, in <module> from merlion.dashboard.callbacks import data File "D:\environment\python\python-3.9.13\lib\site-packages\merlion\dashboard\callbacks\data.py", line 16, in <module> from merlion.dashboard.utils.file_manager import FileManager File "D:\environment\python\python-3.9.13\lib\site-packages\merlion\dashboard\utils\file_manager.py", line 12, in <module> from dash.long_callback import DiskcacheLongCallbackManager ModuleNotFoundError: No module named 'dash.long_callback'
错误原因
当前环境里的 Dash 版本太新(Dash 3.x),它已经把 dash.long_callback 这套接口迁移/移除了;而 Merlion 的 dashboard 代码还在 from dash.long_callback import DiskcacheLongCallbackManager,所以直接 ModuleNotFoundError。(Dash)
解决办法:把 Dash 降级到 2.x
在 Windows 命令行里执行(建议在 venv 里做):
pip uninstall -y dash dash-bootstrap-components
pip install "dash_bootstrap_components<=1.7.1" --force-reinstall
pip install "dash<=2.18.0" --force-reinstall
pip install diskcache
这个降级组合是社区在遇到同样问题时给出的可用 workaround(Merlion #179 相关)。(GitHub)
然后验证版本:
python -c "import dash; import dash_bootstrap_components as dbc; print('dash', dash.__version__, 'dbc', dbc.__version__)"

再启动:
python -m merlion.dashboard

浙公网安备 33010602011771号