使用Pipenv从GitHub安装spaCy遇问题:依赖与锁文件生成失败
解决Pipenv安装GitHub版spaCy的两个问题
问题1:预安装依赖失败,setup_requires无效的解决方案
当你用pipenv install -e git+https://github.com/explosion/spaCy#egg=spacy安装spaCy开发版时,pipenv处理**可编辑安装(-e参数)**时不会自动执行setup.py里的setup_requires依赖安装——这是因为可编辑模式下,pip会先克隆仓库再运行setup脚本,但此时构建依赖还未就绪,导致报错。
解决这个问题的正确步骤:
- 先手动安装所有必需的构建依赖到Pipenv环境:
pipenv install cython preshed murmurhash thinc - 完成后再执行spaCy的可编辑安装命令:
pipenv install -e git+https://github.com/explosion/spaCy#egg=spacy
如果你不想分步操作,也可以把所有依赖写在同一条命令里:
pipenv install cython preshed murmurhash thinc -e git+https://github.com/explosion/spaCy#egg=spacy
问题2:生成Pipfile.lock失败的解决方案
你遇到的InstallationError: No files/directories in None (from )报错,本质是pipenv依赖的piptools无法正确解析Git可编辑安装包的egg信息——Git克隆的可编辑包首次安装后,可能未生成完整的egg-info目录,导致锁文件生成时无法读取依赖信息。
这里有几个可行的解决办法:
方法1:本地克隆后再安装可编辑版本
这种方式能让pipenv更稳定地识别依赖:
- 克隆spaCy仓库到本地:
git clone https://github.com/explosion/spaCy.git cd spaCy - 在当前目录用pipenv安装本地可编辑版本:
pipenv install -e . - 若未自动生成锁文件,手动触发:
pipenv lock
方法2:跳过初始锁生成,后续手动更新
如果坚持用Git远程安装,可以先跳过锁文件生成,再手动修复:
- 安装时添加
--skip-lock参数:pipenv install -e git+https://github.com/explosion/spaCy#egg=spacy --skip-lock - 安装完成后手动更新锁文件(
--pre允许解析预发布版本依赖,适配spaCy的部分依赖):pipenv lock --pre
方法3:升级pipenv到最新版本
旧版本pipenv对Git可编辑安装的锁文件生成存在bug,升级到最新版本可能直接解决问题:
pip install --upgrade pipenv
内容的提问来源于stack exchange,提问作者spbks
相关产品推荐
相关产品推荐

