PyPI 包的安装数量统计信息?
Posted
技术标签:
【中文标题】PyPI 包的安装数量统计信息?【英文标题】:Number of installations statistics for PyPI packages? 【发布时间】:2012-05-09 17:23:16 【问题描述】:我现在在 Python 包索引 (PyPI) 上有几个包。有什么方法可以统计下载次数(手动或通过easy_install
或pip
?
或者,或者,主程序包页面获得了多少浏览量?
【问题讨论】:
【参考方案1】:我在其他答案中尝试了不同的方法。就我而言,虚荣心不再起作用了,原因是here。 pypi.python.org网站上没有pip统计,原因是here。
有 2 种方法仍然可用。
第一种方法比第二种方法容易
-
转至pypistats.org;
搜索包名;
获取其下载的统计信息。下图是
numpy
的结果。
第二种方法是Google Big Query,PiPy推荐officially。
-
转到https://bigquery.cloud.google.com/dataset/the-psf:pypi
将以下代码复制到
editor
窗口中。
SELECT
details.installer.name,
COUNT(*) as download_count,
FROM `the-psf.pypi.downloads*`
WHERE
file.project = 'dvc'
AND _TABLE_SUFFIX
BETWEEN FORMAT_DATE('%Y%m%d', DATE('2020-01-04'))
AND FORMAT_DATE('%Y%m%d', DATE('2020-02-04'))
GROUP BY details.installer.name
-
点击
run
按钮,获取结果。下面2张图是numpy
的代码和结果。
请注意,第二种方法需要您有谷歌云帐户,并且需要您提供您的信用卡信息,并且每天的查询次数有限。 所以我个人推荐第一种方法。
【讨论】:
【参考方案2】:您现在可以使用pypistats 网站查看您的统计信息。
对于pytest
包:https://pypistats.org/packages/pytest
这些数字与 bigquery 的数字一致。例如13-04
日:501685 次无镜像下载。
使用请求:
#standardSQL
SELECT
COUNT(*) AS num_downloads,
SUBSTR(_TABLE_SUFFIX, 7, 8) AS `day`
FROM `the-psf.pypi.downloads*`
WHERE file.project = 'pytest'
AND _TABLE_SUFFIX
BETWEEN FORMAT_DATE(
'%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY `day`
ORDER BY `day`
【讨论】:
【参考方案3】:如果您想过滤数据并检查每次安装程序运行的所有下载:
SELECT
details.installer.name,
COUNT(*) as download_count,
FROM `the-psf.pypi.downloads*`
WHERE
file.project = 'dvc'
AND _TABLE_SUFFIX
BETWEEN FORMAT_DATE('%Y%m%d', DATE('2020-01-04'))
AND FORMAT_DATE('%Y%m%d', DATE('2020-02-04'))
GROUP BY details.installer.name
所以你应该看到所有的安装程序,例如:
更多信息请查看useful-queries
【讨论】:
【参考方案4】:我找到了一个网站:https://pypistats.org/packages/py3-pinterest
他们只跟踪 1 天、1 周和 1 个月的下载量。 @Dmitry Petrov 的回答更好。
【讨论】:
【参考方案5】:pypi.python.org 网站上没有 Pip 统计信息,vanity
包也不能正常工作。
今天您只能通过 BigQuery 中的这个数据集获取点子统计信息:https://bigquery.cloud.google.com/dataset/the-psf:pypi
https://pypi.python.org/pypi/dvc 包的查询示例:
SELECT
details.system.name,
COUNT(*) as download_count,
FROM
TABLE_DATE_RANGE(
[the-psf:pypi.downloads],
DATE_ADD(CURRENT_TIMESTAMP(), -31, "day"),
DATE_ADD(CURRENT_TIMESTAMP(), -1, "day")
)
WHERE
file.project = 'dvc'
GROUP BY details.system.name
请注意,部分下载信号是由监控工具产生的,不应计入用户下载量。例如,您应该从输出中排除 null
值:
Row details_system_name download_count
1 Darwin 1111
2 null 10000
3 Windows 222
4 Linux 3333
【讨论】:
您提供的链接似乎不再起作用(无法找到数据集错误)。 仅当您当前是 Google BigQuery 客户且其帐户已通过提供您的卡详细信息进行验证时才有效。但该服务是免费的 - 您无需付费。 我无法相信获得如此简单的统计数据有多难,感谢您的回答,这是唯一有效的方法 可以使用details.installer.name
进一步过滤这些下载,以忽略bandersnatch 的下载,这是一个镜像工具。
Big Query 链接似乎不再起作用。 Waring:“经典 UI 已于 10 月 1 日停用。转到 Google Cloud Console”。我进入谷歌云控制台后,上面的代码不起作用。错误:“未找到表值函数:TABLE_DATE_RANGE at [5:3]”【参考方案6】:
更新 2:它回来了!现在在下载列表之后(在用户提供的文档下方)有一个“下载(所有版本)”。
http://mail.python.org/pipermail/distutils-sig/2013-June/021344.html 的公告 - 目前是每日计数;几周和几个月将在可用时添加。但是,奇怪的是,没有总数。
更新:这不再有效(信息不显示) - 请参阅 http://mail.python.org/pipermail/distutils-sig/2013-May/020855.html(不幸的是,这也会影响其他答案)。
也许我误解了(抱歉),但我认为这是在您项目的 pypi 主页上!
查看上面的更新了解最新详情(我已删除下面不再正确的信息)。
【讨论】:
我不敢相信我没有注意到这一点!嗬!您是否知道这是否包括通过pip install xxx
安装时的下载?
我不确定,但我猜是这样 - 这似乎只是使用 http 来抓取东西。
也许我只是很笨,但是当我查看该页面时,我根本没有看到“#downloads”列...
查看我在您发表评论前 4 小时添加的更新?
啊哈!所以 that's 不再起作用的“this”。我不知道现在是该感觉更多还是更少愚蠢;)【参考方案7】:
至少有两个包可以帮助解决这个问题:pypstats
和 vanity
。 Vanity 在命令行中很容易使用:
vanity numpy
您将在控制台上打印输出。
【讨论】:
如何将此输出发送到文件? 虚荣心不再起作用了。github.com/aclark4life/vanity/issues/66以上是关于PyPI 包的安装数量统计信息?的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用skimr包的skim_with函数自定义指定需要查看的统计信息统计口径查看dataframe特定数据列的summary信息统计汇总信息(Specify statistics)
R语言使用skimr包的skim函数查看使用dplyr包的groupby函数分组后dataframe的summary信息统计汇总信息(Handle grouped data)