如何用pip从Git子目录安装extras(可选依赖)?是否有解决办法?
pip通过VCS安装时指定可选依赖(extras)的问题及解决办法
你提到的“无法在VCS安装时指定extras”的情况,在旧版本pip(20.0之前)中确实存在,但从pip 20.0版本开始,官方已经支持该功能,只要用对语法就能实现。
可行的解决办法
1. 新版本pip(20.0+)的标准用法
直接在VCS地址后通过#egg=包名[可选依赖组]的格式指定,同时还可以结合分支、标签、提交哈希或者子目录:
- 安装GitHub仓库main分支,并包含
dev和docs可选依赖:pip install git+https://github.com/example-user/example-repo.git@main#egg=example-package[dev,docs] - 从仓库子目录安装并指定可选依赖:
pip install git+https://github.com/example-user/example-repo.git@main#subdirectory=packages/sub-package&egg=sub-package[extra1]
2. 旧版本pip的临时处理方案
如果你的pip版本低于20.0,没法直接通过VCS URL指定extras,可以用以下两种方式:
- 先克隆仓库到本地,切换到目标分支/提交后,本地安装并指定extras:
git clone https://github.com/example-user/example-repo.git cd example-repo git checkout main pip install .[dev,docs] - 先通过VCS安装基础包,再单独安装带extras的版本(注意如果包版本号未更新,可能需要加
--force-reinstall强制更新):pip install git+https://github.com/example-user/example-repo.git@main#egg=example-package pip install example-package[dev,docs] --force-reinstall
内容的提问来源于stack exchange,提问作者Gabriele
相关产品推荐
相关产品推荐

