You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git+https依赖场景下pip install -e .失败但pip install -r成功的问题

问题原因

这是因为pip和setuptools对依赖格式的解析规则完全不同:

  • pip install -r requirements.txt用的是pip专属的解析逻辑,为了兼容历史用法,它支持直接写git+https://...这类非标准格式的VCS依赖。
  • 但当你在setup.cfg里用install_requires = file: requirements.txt时,实际是让setuptools来解析这个文件的内容,而setuptools严格遵循PEP 508依赖规范,它要求所有依赖必须以「包名 @ 依赖源」的格式声明,直接写git+https://...不符合这个规范,所以会触发语法解析错误。

PEP 508对VCS类型依赖的标准格式是:包名 @ git+https://仓库地址@版本标签,而你原来写的git+https://...#egg=mypackage是pip历史兼容的写法,并不符合PEP 508标准。

修复方案

有两种可行的解决方式:

方式一:修改requirements.txt为PEP 508格式

把原来的git依赖行替换成标准格式:

# 原内容
git+https://github.com/myorg/myrepo@v1.0.0#egg=mypackage

# 修改后
mypackage @ git+https://github.com/myorg/myrepo@v1.0.0

修改后,不管是用pip install -r requirements.txt还是通过setup.cfg引用,都能正常解析安装。

方式二:在setup.cfg中单独声明VCS依赖

如果不想修改requirements.txt,可以在setup.cfg里单独列出符合PEP 508格式的VCS依赖,同时保留对普通依赖的文件引用:

[options]
install_requires =
    mypackage @ git+https://github.com/myorg/myrepo@v1.0.0
    # 引用其他普通依赖(确保requirements.txt里不再包含上面的git依赖)
    file: requirements.txt

内容的提问来源于stack exchange,提问作者Craig Ringer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:37:15