我的项目对另一个项目有依赖性,我在setup.py文件中使用git依赖性如下:
setup(
name="cake",
version="0.1",
install_requires=[
"flan @ git+ssh://git@github.com/terrymcguire/flan.git#egg=flan"
]
)
假设它们都依赖于pyyaml。最好的做法是在两个项目的setup.py,install_requires:...(或您需要的requirements.txt)中都包含一个“ pyyaml == 5.1.2”。版本是相同的,还是建议仅在
flan项目中将
pyyaml作为依赖项列出,然后再在父项目中继承该版本,即使当时还不清楚
pyyaml是对...的依赖项父项目,如果有一天我不再依赖
flan`,我可能不会注意到我可能破坏了其他代码?
问题来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
最好的做法是在两个项目的setup.py中包含一个“ pyyaml == 5.1.2”,
install_requires:...`(或您喜欢的“ requirements.txt”)[...] ?
仅应用程序应该(可能)将需求固定到特定版本。库应限制在一定范围内的已知兼容版本(尽可能准确)。
总的来说,我相信将依赖项的版本固定在setup.py(或pyproject.toml)中是一个坏主意,因为最终用户无法(轻易)否决那些依赖项,最终用户会安装项目(doesn (无论是应用程序还是库),都应该对安装的内容有最后决定。另一方面,优良作法是以最终用户可能会选择的“ requirements.txt”文件的形式给出已知有效(因为已经过测试)的固定依赖版本的组合建议。是否使用(对于应用程序,这对于库没有多大意义)。
阅读例如Donald Stufft的文章“ setup.py vs requirements.txt ”。
是否建议仅在flaan项目中将pyyaml列为依赖项,然后在父项目中继承该版本,即使现在还不清楚pyyaml是父项目的依赖项[...]?
一般(显而易见的)规则是,所有项目都应列出所有自己的依赖项,并且仅列出自己的依赖项。其他任何事情都没有任何意义(当然可能会像往常一样有例外)。
回答来源:stackoverflow