如何在 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 上订阅包的更新?的主要内容,如果未能解决你的问题,请参考以下文章