PyPI 包的安装数量统计信息?

Posted

技术标签:

【中文标题】PyPI 包的安装数量统计信息?【英文标题】:Number of installations statistics for PyPI packages? 【发布时间】:2012-05-09 17:23:16 【问题描述】:

我现在在 Python 包索引 (PyPI) 上有几个包。有什么方法可以统计下载次数(手动或通过easy_installpip

或者,或者,主程序包页面获得了多少浏览量?

【问题讨论】:

【参考方案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】:

至少有两个包可以帮助解决这个问题:pypstatsvanity。 Vanity 在命令行中很容易使用:

vanity numpy 

您将在控制台上打印输出。

【讨论】:

如何将此输出发送到文件? 虚荣心不再起作用了。github.com/aclark4life/vanity/issues/66

以上是关于PyPI 包的安装数量统计信息?的主要内容,如果未能解决你的问题,请参考以下文章

统计redis大key信息(前topN)

R语言使用skimr包的skim_with函数自定义指定需要查看的统计信息统计口径查看dataframe特定数据列的summary信息统计汇总信息(Specify statistics)

Wireshark——工具

[统计信息]1.Oracle统计信息概述

[统计信息]1.Oracle统计信息概述

R语言使用skimr包的skim函数查看使用dplyr包的groupby函数分组后dataframe的summary信息统计汇总信息(Handle grouped data)