以下命令从git存储库安装Python软件包:
$ pip install git+ssh://git@github.com/username/repo.git
Collecting git+ssh://git@github.com/username/repo.git
Cloning ssh://git@github.com/username/repo.git to /tmp/pip-req-build-8s4nci15
我不确定100%,但是由于花费了很长时间,我猜它会克隆每个提交。但是对于安装,我只需要最新的。
相反,我想要一个浅表克隆(带有--depth 1
)。有可能吗?
答案 0 :(得分:1)
在--depth 1
命令中添加git clone
有been discussed at length,并且暂时被pip
的维护者拒绝。它似乎是more complex issue than one might expect,特别是因为它会破坏广泛使用的setuptools_scm
。
正如克劳斯(Klaus)在评论中所说,您can avoid the overhead of git clone
by pointing to a remote archive file而不是使用Git URL:
pip install http://my.package.repo/SomePackage-1.0.4.zip
答案 1 :(得分:1)
除了可能会根据托管方式使用的变通方法(如ZIP)外,通用的git变通方法是预先创建浅表克隆,然后(因为您的克隆本身就是git repo) PIP到克隆。
这不是理想的选择(因此“变通”),因为对于自动化情况,您必须在调用PIP之前编写浅克隆的脚本编写,并且提供给PIP的数据将列出克隆相应包的URL而不是规范URL。
此外,由于在PIP“深度= 1”辩论中提到的原因,根据您(或依赖项)使用的工具,它可能最终对您不起作用。 git describe
似乎是问题(或至少是一个常见问题)的症结所在;因此,您可以将标记放在您在本地进行的一次提交上,作为进一步的解决方法。