Mac系统安装huggingface datasets后import报错AttributeError: readonly attribute
问题成因
- 该报错是Python 3.10.0、3.10.1版本的官方已知缺陷:
functools.update_wrapper函数尝试给C扩展实现的函数对象设置__wrapped__属性时,由于该属性默认是只读状态,会直接抛出AttributeError: readonly attribute异常。 - 次要诱因是本地安装的datasets版本过旧,未针对Python 3.10早期版本做兼容适配,或者datasets依赖的dill序列化库版本和当前Python环境不兼容。
修复方案
- 方案1(最优):升级Python 3.10到最新补丁版本
直接将你当前使用的Python 3.10版本升级到3.10.11及以上的3.10分支正式版即可,Python官方已经在后续补丁版本中修复了这个只读属性写入的bug。 - 方案2:无需升级Python,单独升级datasets库
执行以下命令升级datasets到兼容版本:
2.0.0及以上版本的datasets已经内置了Python 3.10早期版本的兼容逻辑,可以直接规避该报错。pip install --upgrade datasets>=2.0.0 - 方案3:升级datasets后仍报错时降级dill版本
如果执行完方案2后导入还是报错,执行以下命令降级dill库即可:
该版本的dill不会触发functools的属性写入冲突。pip install dill==0.3.4
内容的提问来源于stack exchange,提问作者Sarnax
相关产品推荐
相关产品推荐

