如何获取可升级 pip 的模块的变更日志信息

问题描述 投票:0回答:2

如果我这样做

 pip list --outdated

我得到了可升级模块的列表。例如:

Package            Version    Latest   Type
------------------ ---------- -------- -----
aiofiles           22.1.0     23.1.0   wheel
anyio              3.6.2      3.7.0    wheel
attrs              22.2.0     23.1.0   wheel
beautifulsoup4     4.11.2     4.12.2   wheel
comm               0.1.2      0.1.3    wheel
Cython             0.29.33    0.29.35  wheel
[...]

有什么方法可以获取要安装的新版本的变更日志或相关发行说明吗?我想以编程方式获取这些,如果可能的话最好从命令行获取。

python pip python-module
2个回答
1
投票

不幸的是没有。轮子中通常没有任何变更日志,只是嵌入在 Description 字段中的顶级自述文件(甚至这是可选的)。

您最好的选择是检查 Project-URL 来尝试查找变更日志,但这很难以编程方式完成,而且并非所有项目都懒得保留变更日志。


1
投票

没有内置的编程方式来检索变更日志。

定义“Python 软件包元数据”的 PEP(241314345566)没有为变更日志定义任何内容。由于没有标准位置,因此无法保证可以在任何给定的包中找到它。然而,有很多常见的地方值得一看。

changelogs项目试图做到这一点。正如自述文件中所述,这不是一个完美的解决方案:

当尝试获取给定包的变更日志时,存在很多问题:

  • 没有存储变更日志的中心位置。如果一个项目有变更日志,它很可能位于 git 存储库中各个不同位置的某个位置。这样就很难找到了。
  • 包索引元数据通常没有到 git 存储库的直接链接。这使得回购很难找到。
  • 没有变更日志标准。每个人都使用不同的方法。这使得解析变得困难。

这个项目试图通过以下方式解决这个问题:

  • 首先向软件包供应商查询软件包元数据,例如主页或文档 URL。
  • 如果元数据不包含存储库的有效 URL,请访问所有可用 URL 并抓取它们以找到一个。
  • 如果有有效的存储库 URL,请访问该存储库并查找可能的更改日志,例如 Changes.txt、NEWS.md 或 History.rst。
  • 获取内容并尝试解析它。
© www.soinside.com 2019 - 2024. All rights reserved.