Mac加载Huggingface数据集时出现Errno 13权限拒绝错误求助
解决Mac上Hugging Face加载数据集时的PermissionError权限问题
问题场景
在Mac上执行以下代码加载Hugging Face数据集时:
from datasets import load_dataset raw_datasets = load_dataset("glue", "mrpc")
出现权限错误:
PermissionError: [Errno 13] Permission denied: '/Users/username/.cache/huggingface/datasets/downloads/6d9bc094a0588d875caee4e51df39ab5d6b6316bf60695294827b02601d421a5.759f3e257a3fad0984d9f8ba9a26479d341795eb50fa64e4c1de40f1fc421313.py.lock'
解决方案
修复缓存目录所有权
终端执行命令,将Hugging Face缓存目录的权限重置为当前用户(替换命令中的username为你的Mac用户名):sudo chown -R $USER:$USER /Users/username/.cache/huggingface执行完成后重新运行加载数据集的代码。
手动删除锁文件
直接删除报错中指定的锁文件:rm /Users/username/.cache/huggingface/datasets/downloads/6d9bc094a0588d875caee4e51df39ab5d6b6316bf60695294827b02601d421a5.759f3e257a3fad0984d9f8ba9a26479d341795eb50fa64e4c1de40f1fc421313.py.lock如果找不到具体文件,可批量删除下载目录下的所有锁文件:
rm -rf /Users/username/.cache/huggingface/datasets/downloads/*.lock指定自定义缓存目录
绕过原缓存目录的权限问题,在代码中指定一个你拥有完全权限的目录作为数据集缓存:import os # 替换为你自己有权限的目录路径 os.environ["HF_DATASETS_CACHE"] = "/Users/username/Documents/hf_datasets_cache" from datasets import load_dataset raw_datasets = load_dataset("glue", "mrpc")也可以在终端运行脚本前先设置环境变量:
export HF_DATASETS_CACHE="/Users/username/Documents/hf_datasets_cache" python your_script.py排查进程占用
检查是否有其他进程在占用该锁文件,终端执行:lsof /Users/username/.cache/huggingface/datasets/downloads/6d9bc094a0588d875caee4e51df39ab5d6b6316bf60695294827b02601d421a5.759f3e257a3fad0984d9f8ba9a26479d341795eb50fa64e4c1de40f1fc421313.py.lock从输出中找到
PID列的进程ID,执行命令杀掉该进程(替换<进程ID>为实际数值):kill -9 <进程ID>之后重新运行代码即可。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

