gpt4 book ai didi

python - 使用 pbr 时如何将 git repo 包含为依赖项

转载 作者:太空狗 更新时间:2023-10-29 13:42:34 27 4
gpt4 key购买 nike

我正在使用 pbr它使用 requirements.txt 文件来查找依赖项。

我在 requirements.txt 中有一行 git+ssh://git@github.com/user/repo.git 并且它在我运行时有效pip install -r requirements.txt

但是,当我运行 python setup.py build 时,我遇到了错误:

error in setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'+ssh://g'"

many Stack Overflow answers在使用 setuptools 时专门处理这个问题,所有这些都建议将 Git 依赖项放入 setup.py 中的 dependency_links 列表。

我希望 pbr 能够以一种在我同时运行 python setup.py buildpip install -r requirements.txt.

这可能吗?是否有任何接近的解决方法?

最佳答案

在您提供的示例中,pbr 将整行传播到 install_requires,这会产生无效行。

通过#egg=name 提供需求名称

为了按预期工作,该 url 需要一个 #egg 后缀来告诉 pbr 该 URL 提供了什么要求。如果 URL 看起来像这样,pbr 将 scrape a requirement#egg 部分之外,仅将 repo 传播到 install_requires:

git+ssh://git@github.com/user/repo.git#egg=repo

版本限制

如果包含一个版本,pbr will add >= 约束。所以这将在 install_requires 中变为 repo>=1.2.3:

git+ssh://git@github.com/user/repo.git#egg=repo-1.2.3

依赖链接

它也会extract a dependency_link item包含完整的 URL。您可以通过将 --process-dependency-links 传递给 pip 来使用它。默认情况下,pip 将返回错误 Could not find a version that satisfy the requirement repo 除非该包也可通过 PyPI 获得。如果指定了 --process-dependency-links,那么它将改为从 Git URL 获取它。

使用-e标志,或者要求pbr>=1.9.0

在 1.9.0 版本之前,pbr 只能识别 httphttps URL,除非该行以 -e 开头。它添加了对 git://git+ssh://git+https:// 的支持,没有 -ethis commit .

关于python - 使用 pbr 时如何将 git repo 包含为依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46342486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com