既然你提到你喜欢遵循最佳实践,我猜你也在使用 virtualenv,对吗?假设是这种情况,并且由于您已经固定了您的包,有一个名为pip-tools 的工具,您可以针对您的 virtualenv 运行它来检查更新。
有一个缺点,以及为什么我提到了 virtualenv 的使用。
[该工具] 检查 PyPI 并报告可用更新。它使用当前安装的软件包列表来检查更新,它不使用任何 requirements.txt
如果你在你的 virtualenv 中运行它,你可以很容易地看到哪些包有可用于你当前活动环境的更新。但是,如果您不使用 virtualenv,最好不要在系统上运行它,因为您的其他项目可能依赖于不同的版本(或者即使它们当前都可以正常工作,也可能无法与更新的版本一起工作)。
从提供的文档来看,使用很简单。向pip-review
您显示可用的更新,但不会安装它们。
$ pip-review
requests==0.13.4 available (you have 0.13.2)
redis==2.4.13 available (you have 2.4.9)
rq==0.3.2 available (you have 0.3.0)
如果您也想自动安装,该工具也可以处理:$ pip-review --auto
. 还有一个--interactive
开关可用于有选择地更新软件包。
完成所有这些后,pip-tools
提供一种使用最新版本更新您的 requirements.txt 的方法:pip-dump
. 同样,这针对当前活动的环境运行,因此建议在 virtualenv 中使用。
项目的安装可以通过pip install pip-tools
.
作者注:我已经将它用于小型 Django 项目并且对此非常满意。但是,请注意,如果您安装pip-tools
到虚拟环境中,当您运行时,pip-dump
您会发现它已添加到您的 requirements.txt 文件中。由于我的项目很小,我总是手动删除该行。如果您有某种构建脚本,您可能希望在部署之前自动将其剥离。