我是否应该针对开发需求,或仅仅是安装要求?

问题描述 投票:3回答:1

我想我应该只针对安装要求,就像我在这里做的那样:

固定:https://github.com/Laurentiu-Andronache/nano-python/blob/master/requirements.pip

取消固定,因为他们是开发要求:https://github.com/Laurentiu-Andronache/nano-python/blob/master/requirements-dev.pip

优点是对于安装应用程序的用户来说,它可以在门外工作。开发人员将能够利用开发工具改进(更好的git hooks pre-commit auto-update,pytest更新pip install --upgrade -r requirements-dev.pip等,以便可能解决更多问题)

python python-3.x python-2.7
1个回答
2
投票

我认为这里的正确答案是应该有两个文件,一个具有许可要求,另一个带有固定的,经过测试的软件包。由于大多数python项目都使用单个requirements.txt(或者在你的情况下,requirements.pip)文件中分发,因此现在无法以一种简单易用的方式实现,但未来的某个时间pipfile可能会成为新的标准。

简而言之,我认为您当前的方法是可以的,不需要修复或任何东西,但最佳解决方案将包括一个看起来像这样的reqirements文件并手动维护:

certifi
chardet
idna>=2.3

和一个lockfile看起来像是由一些工具(例如pip freeze)在成功部署后创建的:

certifi==2019.3.9
chardet==3.0.4
idna==2.6

如果您认为这对您的项目有意义,请随时成为已建立的锁定文件格式的早期采用者(通过pipenvpoetry之类的工具),这比原始文本文件要好得多。


为了回答关于区分开发包和非开发包的问题,​​pipfile格式将它们包含在同一个文件和不同的部分中,并将它们全部取消固定在pip文件中并固定在lockfile中。这似乎是编写pipfile代码的the guys in charge of python packaging的方法,所以我只是继续并相信他们的判断。

© www.soinside.com 2019 - 2024. All rights reserved.