Python 3.9.13导入datasets时遇dill._dill属性错误求助
解决datasets导入时的dill AttributeError问题
问题详情
Python 3.9.13环境下,执行import datasets报错:
AttributeError: module 'dill' has no attribute '_dill'
当前使用包版本:datasets 2.9.0、dill 0.3.6
报错堆栈:
import datasets File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\__init__.py", line 43, in <module> from .arrow_dataset import Dataset File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\arrow_dataset.py", line 66, in <module> from .arrow_writer import ArrowWriter, OptimizedTypedSequence File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\arrow_writer.py", line 27, in <module> from .features import Features, Image, Value File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\features\__init__.py", line 17, in <module> from .audio import Audio File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\features\audio.py", line 12, in <module> from ..download.streaming_download_manager import xopen File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\download\__init__.py", line 9, in <module> from .download_manager import DownloadManager, DownloadMode File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\download\download_manager.py", line 36, in <module> from ..utils.py_utils import NestedDataStructure, map_nested, size_str File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\utils\py_utils.py", line 602, in <module> class Pickler(dill.Pickler): File "C:\ProgramData\Anaconda3\lib\site-packages\datasets\utils\py_utils.py", line 605, in Pickler dispatch = dill._dill.MetaCatchingDict(dill.Pickler.dispatch.copy()) AttributeError: module 'dill' has no attribute '_dill'
解决方案
方案一:降级dill版本
dill 0.3.6移除了内部的_dill模块,而datasets 2.9.0依赖该接口。执行以下命令降级:pip install dill==0.3.5方案二:升级datasets版本
升级到兼容dill 0.3.6的datasets版本(比如>=2.10.0,该版本已修复此依赖问题),执行命令:pip install --upgrade datasets
内容的提问来源于stack exchange,提问作者Fawen
相关产品推荐
相关产品推荐

