【发布时间】:2021-11-11 05:02:04
【问题描述】:
虽然可以简单地使用pip freeze 来获取当前环境,但不适合要求像我所使用的那样最前沿的环境。
此外,一些开发人员工具仅在最新版本的包中可用(想想类型注释),但用户不需要。
我的目标用户可能希望在缓慢升级的机器上使用我的包,并且我希望我的要求尽可能低。
例如,我不能要求比 Python 3.6 更好(即使那样我认为某些用户可能无法使用该包)。
同样,我想避免需要最新的 Numpy 或 Matplotlib 版本。
是否有(半)自动方式来确定每个依赖项的最旧兼容版本?
或者,我可以手动尝试使用旧包构建 conda 环境,但我必须随机尝试。 不幸的是,我继承了一个中等规模的代码库(~10KLoC),还没有进行自动化测试(我打算做一些,但是这需要一些时间,很遗憾这不是我的首要任务)。 要求也没有正确定义,所以我不知道两年前它是用什么运行的。
【问题讨论】:
-
一个应用程序应该
pip freeze其当前要求并且要求完全按照该要求运行。但是库应该不那么严格,并允许最低要求的要求,确实。
标签: python dependencies backwards-compatibility python-packaging developer-tools