gpt4 book ai didi

python-3.x - 与您自己的依赖项共享第三方依赖项的最佳实践

转载 作者:行者123 更新时间:2023-12-04 10:26:51 25 4
gpt4 key购买 nike

我的项目依赖于另一个项目,我在 setup.py 中使用了 git 依赖,如下所示。文件:

setup(
name="cake",
version="0.1",
install_requires=[
"flan @ git+ssh://git@github.com/terrymcguire/flan.git#egg=flan"
]
)


假设它们都依赖于 pyyaml .最好的做法是包含 "pyyaml==5.1.2"在两个项目内 setup.py , install_requires: ... (或 requirements.txt,根据您的喜好),并确保版本相同,还是建议只有 pyyamlflan 中列为依赖项项目,然后继承父项目中的版本,尽管当时不太清楚 pyyaml是父项目的依赖,如果有一天我不再依赖 flan ,我可能没有注意到我可能破坏了其他代码?

最佳答案

1.

Is it best practice to include a "pyyaml==5.1.2" inside both projects' setup.py, install_requires: ... (or requirements.txt as you prefer) [...]?



只有应用程序应该(可能)将需求固定到特定版本。库应该限制在一系列已知的兼容版本(尽可能准确)。

一般来说,我相信在 setup.py 中固定依赖项的版本(或 pyproject.toml )是一个坏主意,因为最终用户无法(轻松)否决这些,最终安装项目的人(应用程序或库无关紧要)以及应该拥有最终决定权的人安装什么。另一方面,以 requirements.txt 的形式给出已知运行良好(因为它已经过测试)的依赖项的固定版本组合的建议是一种很好的做法。最终用户可能选择使用或不使用的文件(对于应用程序,这对库没有多大意义)。

阅读例如 Donald Stufft's article "setup.py vs requirements.txt" .

2.

is it recommended to only have pyyaml listed as a dependency in the flan project, and then inherit the version in the parent project, even though it's then less clear that pyyaml is a dependency of the parent project [...]?



一般(显而易见)规则是所有项目都应该列出它们自己的所有依赖项,并且只列出它们自己的依赖项。其他任何事情都没有任何意义(当然,一如既往可能会有异常(exception))。

关于python-3.x - 与您自己的依赖项共享第三方依赖项的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60605154/

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