我在想,我应该只按一下安装要求,就像我在这里做的那样:
钉扎: https://github.com/Laurentiu-Andronache/nano-python/blob/master/requirements.pip
未固定,因为它们是开发需求: https://github.com/Laurentiu-Andronache/nano-python/blob/master/requirements-dev.pip
这样做的好处是,对于安装该应用程序的用户来说,它可以走出大门。而且devs将能够利用开发工具的改进(更好的git挂钩pre-commit auto-update、pytest更新pip install --upgrade -r requirements-dev.pip等等,以便潜在地解决更多问题)。
发布于 2019-03-13 08:00:43
我认为正确的答案是,应该有两个文件,一个是允许的需求,另一个是固定的、经过测试的包集。由于大多数python项目都是使用单个requirements.txt (或者在您的例子中是requirements.pip)文件来分发的,所以它现在还不能很好地实现,但是将来pipfile可能会成为新的标准。
因此,简而言之,我认为您当前的方法是可以的,不需要进行修复或其他任何事情,但是最优的解决方案应该包括一个reqirements-file,它看起来像这样,并且是手动维护的:
certifi
chardet
idna>=2.3一个类似于此的lockfile是在成功部署之后由某个工具(例如pip freeze)创建的:
certifi==2019.3.9
chardet==3.0.4
idna==2.6如果您认为这样做对您的项目是有意义的,那么您可以作为一个已经建立的锁文件格式的早期采用者(通过像pipenv或poetry这样的工具),这比原始文本文件要好得多。
为了回答区分dev包和非dev包的问题,pipfile格式将它们包含在同一个文件和不同的部分中,并将它们全部解压在pipfile中,并固定在锁文件中。这似乎是负责蟒蛇包装的人编写pipfile代码的方法,所以我会继续相信他们的判断。
https://stackoverflow.com/questions/55136741
复制相似问题