在WSL的Fedora Remix中下载en_core_web_lg遇权限错误求助
解决WSL Fedora Remix中Spacy模型下载PermissionError问题
问题描述
在WSL的Fedora Remix系统(38版本)中,使用conda 4.12.0管理的Python 3.7.6环境执行命令:
python -m spacy download en_core_web_lg
出现权限错误,完整回溯如下:
$ python -m spacy download en_core_web_lg Traceback (most recent call last): File "/home/time/anaconda3/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/home/time/anaconda3/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/__main__.py", line 4, in <module> setup_cli() File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/cli/_util.py", line 87, in setup_cli command(prog_name=COMMAND) File "/home/time/anaconda3/lib/python3.7/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) File "/home/time/anaconda3/lib/python3.7/site-packages/typer/core.py", line 785, in main **extra, File "/home/time/anaconda3/lib/python3.7/site-packages/typer/core.py", line 216, in _main rv = self.invoke(ctx) File "/home/time/anaconda3/lib/python3.7/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/time/anaconda3/lib/python3.7/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/time/anaconda3/lib/python3.7/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) File "/home/time/anaconda3/lib/python3.7/site-packages/typer/main.py", line 683, in wrapper return callback(**use_params) # type: ignore File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/cli/download.py", line 43, in download_cli download(model, direct, sdist, *ctx.args) File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/cli/download.py", line 82, in download download_model(filename, pip_args) File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/cli/download.py", line 159, in download_model run_command(cmd) File "/home/time/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 1015, in run_command stderr=subprocess.STDOUT if capture else None, File "/home/time/anaconda3/lib/python3.7/subprocess.py", line 488, in run with Popen(*popenargs, **kwargs) as process: File "/home/time/anaconda3/lib/python3.7/subprocess.py", line 800, in __init__ restore_signals, start_new_session) File "/home/time/anaconda3/lib/python3.7/subprocess.py", line 1551, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) PermissionError: [Errno 13] Permission denied: ''
解决方案
这个错误通常是Spacy调用pip时路径异常或权限不足导致的,可尝试以下方法:
1. 使用--user参数绕过系统权限
执行命令时添加--user,将模型安装到用户目录,避免系统级权限限制:
python -m spacy download en_core_web_lg --user
2. 直接用pip安装模型包
Spacy的download命令本质是调用pip安装对应模型包,可直接用当前conda环境的pip执行安装:
pip install en_core_web_lg
如果上述命令找不到包,可指定对应Python3.7兼容的模型版本(比如3.0.0版本):
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.0.0/en_core_web_lg-3.0.0.tar.gz
3. 确认conda环境的pip路径正确
确保当前激活的conda环境使用的是自身的pip,而非系统pip:
which pip
输出应为/home/time/anaconda3/bin/pip(对应你的conda路径),如果不是,重新激活conda环境:
conda activate your_env_name
再执行pip安装命令。
4. 手动下载并链接模型
如果上述方法都无效,可手动下载模型包,解压后用Spacy链接:
- 下载对应版本的模型压缩包(比如en_core_web_lg-3.0.0.tar.gz)
- 解压到任意目录,进入解压后的文件夹
- 执行链接命令:
python -m spacy link en_core_web_lg en_core_web_lg
内容的提问来源于stack exchange,提问作者Time
相关产品推荐
相关产品推荐

