Dash应用报错:模块存在重复路径问题,寻求解决方案
解决Dash应用中「modules have duplicate paths」异常
异常原因
你遇到的Exception: modules ['pages..ipynb_checkpoints.app_Km-checkpoint', 'pages.app_Km'] have duplicate paths错误,是因为Jupyter Notebook自动生成的.ipynb_checkpoints检查点目录中,存在和pages目录下正式模块同名的检查点文件。Dash在扫描页面模块时,会遍历pages目录下所有可识别的模块文件,包括隐藏的检查点文件,导致识别到重复的页面路径。
解决方案
1. 手动清理检查点文件
直接定位到项目中的pages/.ipynb_checkpoints目录,删除其中的app_Km-checkpoint.ipynb文件,或者直接删除整个.ipynb_checkpoints目录。清理后重启Dash应用即可恢复正常,这是最快的临时解决方法。
2. 禁用Jupyter自动生成检查点
如果不想反复清理检查点,可以修改Jupyter配置,彻底关闭检查点生成功能:
- 生成Jupyter配置文件(未生成过的话执行):
jupyter notebook --generate-config - 打开生成的
jupyter_notebook_config.py文件,添加或修改以下配置项:c.FileContentsManager.checkpoint_dir = '' c.FileContentsManager.checkpoints_kwargs = {'enabled': False} - 保存配置后重启Jupyter,后续就不会再生成检查点文件。
3. 配置Dash过滤检查点模块
如果需要保留检查点文件,可以在初始化Dash应用时,添加过滤规则,排除检查点相关的模块:
from dash import Dash # 初始化应用时过滤检查点模块 app = Dash( __name__, pages_folder='pages', pages_registry_filter=lambda module_info: not module_info['module'].endswith('-checkpoint') )
这个方法会让Dash在加载页面时自动跳过检查点模块,避免路径重复冲突。
内容的提问来源于stack exchange,提问作者Mehdi IZERMINE
相关产品推荐
相关产品推荐

