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

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

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

【问题讨论】:

    标签: python pypi


    【解决方案1】:

    我在其他答案中尝试了不同的方法。就我而言,虚荣心不再起作用了,原因是here。 pypi.python.org网站上没有pip统计,原因是here

    有 2 种方法仍然可用。

    第一种方法比第二种方法容易

    1. 转至pypistats.org
    2. 搜索包名;
    3. 获取其下载的统计信息。下图是numpy的结果。

    第二种方法是Google Big Query,PiPy推荐officially

    1. 转到https://bigquery.cloud.google.com/dataset/the-psf:pypi
    2. 将以下代码复制到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
    
    1. 点击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 
            

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

            【讨论】:

            猜你喜欢
            • 2020-01-13
            • 2022-01-15
            • 2019-08-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-07-12
            • 2018-03-27
            • 2021-09-01
            相关资源
            最近更新 更多