Win10下Python3.7从源码安装SpaCy时Preshed安装失败求助
我之前在Windows 10 + Python 3.7环境下折腾spaCy源码安装时,也碰到过一模一样的preshed安装失败问题,给你几个亲测有效的解决方向:
先补全C++编译工具链
Preshed是需要编译的C扩展包,Windows默认没有对应的编译环境,这是最常见的失败原因。你需要安装Visual Studio Build Tools,安装过程中务必勾选「C++ build tools」组件,重点选上MSVC v142编译器(适配Python3.7的版本)和Windows 10 SDK。安装完成后重启你的命令行工具,再尝试执行pip install preshed试试。直接用预编译Wheel包安装
如果不想折腾编译工具,直接用预编译的wheel包是最省心的方式。Python3.7的Windows版本有现成的preshed wheel包,找到对应你系统架构(x86/x64)的wheel文件后,用命令pip install 你的wheel文件完整路径来安装,完全跳过编译步骤。清除pip缓存并调整安装参数
有时候pip缓存的损坏文件会导致安装失败,可以先清除缓存再重试:pip install --no-cache-dir preshed另外,也可以先设置编译相关的环境变量再安装:
set DISTUTILS_USE_SDK=1 pip install preshed确认spaCy源码安装的环境变量设置
你之前把export PYTHONPATH=pwd改成了SET命令,要确保这个环境变量生效——执行echo %PYTHONPATH%看看输出是不是你当前的spaCy源码目录。等preshed安装成功后,再回到spaCy目录执行pip install -r requirements.txt,或者直接用pip install -e .来安装spaCy的可编辑版本,这个命令会自动处理所有依赖。
这些方法应该能帮你解决preshed安装失败的问题,建议从补全编译工具链开始尝试,这是最根本的解决方式。
内容的提问来源于stack exchange,提问作者jax

