首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flair根:[Errno 13]权限被拒绝:‘/PermissionError/.cache’

flair根:[Errno 13]权限被拒绝:‘/PermissionError/.cache’
EN

Stack Overflow用户
提问于 2021-06-04 23:46:39
回答 1查看 434关注 0票数 0

我使用www-data用户(没有sudo权限)使用flair包调用python脚本。模型位于用户具有访问权限的路径中,我已经设置了flair.cache_root = Path("tools/flair")

但是,当我使用该用户运行脚本时,我得到一个权限错误:

代码语言:javascript
复制
tagger = MultiTagger.load([\\\"flair/ner-german-large\\\", \\\"de-pos\\\"])\
File \\\"/usr/local/lib/python3.7/dist-packages/flair/models/sequence_tagger_model.py\\\", line 1330, in load\
model = SequenceTagger.load(model_name)\
File \\\"/usr/local/lib/python3.7/dist-packages/flair/nn.py\\\", line 88, in load\
state = torch.load(f, map_location='cpu')\
File \\\"/usr/local/lib/python3.7/dist-packages/torch/serialization.py\\\", line 594, in load\
return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)\
File \\\"/usr/local/lib/python3.7/dist-packages/torch/serialization.py\\\", line 853, in _load\
result = unpickler.load()\
File \\\"/usr/local/lib/python3.7/dist-packages/flair/embeddings/token.py\\\", line 1297, in __setstate__\
state_dict=d[\\\"model_state_dict\\\"],\
File \\\"/usr/local/lib/python3.7/dist-packages/flair/embeddings/token.py\\\", line 818, in __init__\
self.tokenizer: PreTrainedTokenizer = AutoTokenizer.from_pretrained(model, **kwargs)\
File \\\"/usr/local/lib/python3.7/dist-packages/transformers/models/auto/tokenization_auto.py\\\", line 435, in from_pretrained\
return tokenizer_class_fast.from_pretrained(pretrained_model_name_or_path, *inputs, **kwargs)\
File \\\"/usr/local/lib/python3.7/dist-packages/transformers/tokenization_utils_base.py\\\", line 1680, in from_pretrained\
user_agent=user_agent,\
File \\\"/usr/local/lib/python3.7/dist-packages/transformers/file_utils.py\\\", line 1279, in cached_path\
local_files_only=local_files_only,\
File \\\"/usr/local/lib/python3.7/dist-packages/transformers/file_utils.py\\\", line 1426, in get_from_cache\
os.makedirs(cache_dir, exist_ok=True)\
File \\\"/usr/lib/python3.7/os.py\\\", line 211, in makedirs\
makedirs(head, exist_ok=exist_ok)\
File \\\"/usr/lib/python3.7/os.py\\\", line 211, in makedirs\
makedirs(head, exist_ok=exist_ok)\
File \\\"/usr/lib/python3.7/os.py\\\", line 221, in makedirs\
mkdir(name, mode)\
PermissionError: [Errno 13] Permission denied: '/root/.cache'\

我可以避免使用/root/.cache吗?我不想编辑该目录的读写权限。如果我以root身份运行该脚本,它可以正常工作。如何以其他用户的身份运行它?我在Ubuntu上运行它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-07 19:52:11

该错误是由flair加载的转换器模型引起的。还必须通过设置环境变量TRANSFORMERS_CACHE=/path/to/transformers来指定转换器的缓存目录

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67840219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档