安装GitHub项目依赖时spacy==2.3.5编译失败求助
解决spacy==2.3.5在Python 3.9.13 Windows环境下安装失败的问题
问题根源
spacy 2.3.5是2020年的旧版本,不兼容Python 3.9。它的C扩展代码依赖的_PyGen_Send标识符在Python 3.9中已被移除,这就是编译spacy/strings.cpp时出错的核心原因。
解决办法
1. 降级Python版本
spacy 2.3.5官方支持的最高Python版本是3.8.x,降级后可直接正常安装:
- 卸载当前的Python 3.9.13
- 安装Python 3.8.x系列版本(推荐3.8.10,稳定性更佳)
- 执行
pip install spacy==2.3.5完成安装
2. 使用预编译wheel包(Windows专属)
跳过本地编译环节,直接使用适配Python 3.9的非官方预编译wheel文件:
- 找到对应Python 3.9、Windows 64位的
spacy-2.3.5-cp39-cp39-win_amd64.whl文件 - 运行
pip install 本地wheel文件路径完成安装
3. 升级spacy版本(若项目允许)
如果项目没有严格锁定spacy版本,升级到支持Python 3.9的3.0+版本:
- 执行
pip install spacy>=3.0 - 根据spacy新版本的API调整项目代码即可
补充说明
即使你的MSVC编译器版本与Python 3.9兼容(推荐MSVC 2019),也无法解决spacy 2.3.5本身的代码兼容性问题,因此优先考虑前两种方案。
内容的提问来源于stack exchange,提问作者Vatsh Chheda
相关产品推荐
相关产品推荐

