如何在 PyPI 上订阅包的更新?

Posted

技术标签:

【中文标题】如何在 PyPI 上订阅包的更新?【英文标题】:How can I subscribe to updates of a package on PyPI? 【发布时间】:2013-06-28 00:34:38 【问题描述】:

我希望每次在 PyPI 上发布新版本的 Virtualenv 时都会收到通知,最好是通过电子邮件或 RSS 提要。这可能吗?

【问题讨论】:

pypi 只有最后更新或最新包的 rss 提要,您无法监控单个包。也许您可以使用脚本或feed43 或类似的东西来监控pypi.python.org/simple/virtualenv 【参考方案1】:

是的,这是可能的。

libraries.io

open(*) libraries.io 服务为 Python 包发布提供电子邮件通知服务和 RSS 发布提要。

RSS 提要 URL 遵循以下模式:

https://libraries.io/pypi/PACKAGENAME/versions.atom

例子:

curl -L https://libraries.io/pypi/virtualenv/versions.atom

对于电子邮件订阅,您需要通过 github/gitlab/bitbucket OAuth 登录,但它只是通过 OAuth 请求电子邮件地址。登录后可以浏览到

https://libraries.io/pypi/PACKAGENAME

然后点击订阅按钮,将包添加到您的订阅中。

*在开源的服务器软件中打开,并且聚合数据在知识共享许可下可用。

截至 2018 年 8 月,libraries.io 通知并不真正可靠。例如,一个项目的 PyPI 发布历史页面有一个新版本,libraries.io 没有发送通知邮件,也没有更新 RSS 提要 11 天(并且还在继续)。

安提雅

Anitya (a.k.a. release-monitoring.org) 是另一个用于发布通知的开放项目。它源自 Fedora 上下文,Fedora 基础设施使用它,但它基本上对任何人都开放,可以创建一些电子邮件发布通知。除了 PyPI,它还支持监控其他发布源。

一个小方法:

    注册/登录 release-monitoring.org 检查您感兴趣的 PyPI 包是否已经可用,否则注册缺少的包(“添加项目”) 注册/登录到Fedora Notfications,在电子邮件部分创建一个新过滤器,并从 Anitya 规则列表中添加“任何有关特定“上游项目”的规则。您可以在此处指定以逗号分隔的项目名称列表。

该服务应该每天检查两次新版本。

PyPI 与 pyup.io

截至 2018 年,pypi.org 直接不提供类似功能。它只是为所有版本提供一个版本提要。但它从每个包页面链接到libraries.io(用于统计)。 Pypi 还链接到 GitHub 生态系统中的 similar notification services。

例如,pyup.io 通过连接到您的一个或多个 GitHub 存储库来实现通知 - 需要一堆广泛的 OAuth GitHub 写入权限。然后它会定期扫描存储库的requirements file,如果有更新的依赖版本可用,它就能够创建拉取请求。

【讨论】:

也许我完全错过了这里的船,但是我去了libraries.io,连接了我的GitHub帐户,然后去了一个包页面,但我没有看到任何订阅按钮,即使在使用之后浏览器搜索。我错过了什么? @YDavis 是的,刚刚检查过了,我在项目页面上也找不到订阅按钮了。也许他们引入了一个值得报告的错误:github.com/librariesio/libraries.io/issues【参考方案2】:

是的,可以从 pypi.org 获得 RSS 提要,请参阅:https://pypi.org/rss/project/virtualenv/releases.xml

【讨论】:

【参考方案3】:

PyPI Notifier 会监视您项目的 requirements.txt 文件,并在所需包更新时向您发送电子邮件。

http://www.pypi-notifier.org

您连接到您的 GitHub 帐户并选择您的存储库。

【讨论】:

这真的很接近我想要的。我想观看 Virtualenv 的更新,而不必使用 Virtualenv 作为 requirements.txt 中提到的依赖项创建公共 Github 存储库。【参考方案4】:

如果您对此感兴趣以使您的安装保持最新,您可以使用pip(如Super User 所建议的那样):

$ pip list --outdated
pyflakes (1.2.3) - Latest: 1.3.0 [wheel]

【讨论】:

【参考方案5】:

为提供动力的Warehouse project PyPI.org 的 Python 包索引 (PyPI) 有一个 pull request,以在 /rss/package_name/updates.xml 形式的 URL 中添加对“包更新提要”的支持。这有 been closed 并支持 more general issue 用于不同的、尚未实现的 API。

当/如果它上线时,该 API 将成为获取所需更新的最直接和最官方的方式。

【讨论】:

【参考方案6】:

现在有一个名为 yolk 的包,它将检查 PyPi 以获取已安装包的更新。

pip install yolk
yolk -l  # List all of the installed packages yolk can check
yolk -U  # Check PyPi for updates on the installed packages

它似乎还不适用于 Python 3,尽管有一个 Python 3 fork yolk3k。您可以将其安排为每天一次,并在有新版本时通知您...

【讨论】:

【参考方案7】:

我搜索了一个解决方案,https://newreleases.io 似乎是完美且最新的。我无法使用 library.io 收到电子邮件通知。

【讨论】:

以上是关于如何在 PyPI 上订阅包的更新?的主要内容,如果未能解决你的问题,请参考以下文章

如何在脚本中列出与导入对应的 PyPI 包的名称?

如何使用 git repos 作为我的 PyPi 包的依赖项?

如何将自己的Python代码打包发布到pypi上

如何从 PyPi 包中提取依赖项

如何在用户更新订阅条时设置重定向链接

如何添加我的订阅数据以更新我之前的查询