我最近编写并发布了一个python软件包-这是我第一次向PyPi发布某些内容,因此我仍在学习。
我一直认为将您的需求存储在setup.py和requirements.txt中似乎很疯狂,所以我让setup.py只是读取了requirements.txt文件:https://github.com/big-o/cherrypicker/blob/bf7382cbdabfc6608e3aec388903db32a917314c/setup.py#L32。不过,我从未见过任何其他项目能够做到这一点,这使我建议有充分的理由不这样做。
任何人都可以向我解释为什么我不应该这样做(或者为什么这不是问题)?
我还看到了其他一些解释,它们说setup.py用于安装软件包,而requirements.txt用于设置环境。但是我看不出有什么区别-依赖项是相同的,并且永远都是。如果我需要另一套软件包,例如额外的开发测试包,我可以在setup.py的extras_require部分中单独指定。
编辑:我知道setup.py和requirements.txt这两个不同的角色是什么,我的问题是为什么两个都需要独立,而不是在两者之间共享共同的依赖项列表?