导入evaluate报datasets.utils.download_manager模块缺失如何解决
报错原因
该报错是依赖包版本不兼容导致的:
你安装的0.1.1版本evaluate属于较早的发布版本,代码中固定写死了从datasets.utils.download_manager路径导入DownloadMode类;但当前虚拟环境中安装的datasets版本过高,新版本datasets调整了内部目录结构,移除了这个旧的模块路径,导入时找不到对应模块就会抛出ModuleNotFoundError。
虽然pip的依赖规则声明evaluate依赖datasets,但默认安装时只会满足版本下限要求,不会自动安装和旧版evaluate适配的datasets版本,因此会出现这类版本错配问题。
解决方案
你可以任选以下一种方案修复:
- 固定安装适配版本的datasets:激活当前虚拟环境后执行命令安装和evaluate 0.1.1完全适配的datasets版本,安装完成后直接运行脚本即可正常执行
pip install datasets==2.5.0 - 升级evaluate到最新稳定版:新版evaluate已经适配了高版本datasets的模块路径调整,不会再出现该导入错误,执行以下命令升级即可
pip install --upgrade evaluate - 临时修改源码适配(不推荐长期使用):如果不想调整现有环境的包版本,可以打开报错堆栈中提示的evaluate源码文件
/home/bscuser/env/lib/python3.10/site-packages/evaluate/loading.py,找到第32行的导入语句,将原内容:
修改为高版本datasets对应的导入路径:from datasets.utils.download_manager import DownloadMode
保存文件后即可临时跑通脚本,但后续包升级会覆盖该手动修改,稳定性较差。from datasets.download import DownloadMode
内容的提问来源于stack exchange,提问作者zest16
相关产品推荐
相关产品推荐

