「人気のPythonライブラリを調べたい」
「Pythonライブラリのダウンロード統計を取りたい」
このような場合には、pypinfoがオススメです。
この記事では、pypinfoについて解説しています。
本記事の内容
- pypinfoとは?
- pypinfoのシステム要件
- pypinfoのインストール
- pypinfoの動作確認
それでは、上記に沿って解説していきます。
pypinfoとは?
pypinfoは、PyPIのダウンロード統計にアクセスするためCLIツールです。
Pythonを利用しているなら、PyPIにはお世話になっているでしょう。
PyPI
https://pypi.org/
そして、pypinfoで取得できるのは次のような結果です。
例えば、次のようなダウンロード統計を取得できます。
これは、cryptographyライブラリのシステム別、ディストリビューション別におけるダウンロード数です。
Ubuntuに関しては、納得の結果です。
ただ、Debianも頑張っているのですね。
これは結構意外な結果と言えます。
また、過去1年間のダウンロード数TOP10も集計できます。
他にもいろいろな面から分析が可能です。
ライブラリ選定において、pypinfoの統計結果を利用することもあるでしょう。
ただし、いいことばかりでありません。
pypinfoは、GoogleのBigQuery APIを利用する前提となっています。
APIを利用するためには、そのための処理が必要となります。
そして、その処理がそこそこ複雑です。
でも、安心してください。
その処理をわかりやすく説明しています。
あと、BigQuery APIは課金されます。
従量課金というヤツですね。
おそらく、ここで諦める人がたくさんいることでしょう。
しかし、ここでも安心してください。
1ヶ月で1TBの利用までなら、無料で利用できます。
それに、クレジットカードの事前登録も不要です。
1TBまで利用すれば、自動的にそこで利用停止になるでしょう。
だから、BigQuery APIを安心して利用できます。
以上、pypinfoについて説明しました。
次は、pypinfoのシステム要件を説明します。
pypinfoのシステム要件
現時点(2022年7月)でのpypinfoの最新バージョンは、21.0.0となります。
この最新バージョンは、2022年6月13日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
GOODですね。
pypinfoのメンテナンスが、行き届いていることを伺えます。
以下は、Python公式開発サイクルです。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
この公式開発サイクルを守っているライブラリは、意外と少ないのです。
だからこそ、pypinfoは安心して使えるライブラリと言えます。
システム要件としては、Python 3.7以降だと言うぐらいです。
ただ、pypinfoはBigQuery APIを利用します。
そのため、そのための準備が必要となります。
その準備とは、API利用のための認証ファイルを取得する作業です。
その作業については、次の記事で解説しています。
上記記事に従えば、BigQuery APIの認証ファイルを用意できます。
記事内で言えば、「pypinfo-credentials.json」というファイルです。
以上、pypinfoのシステム要件を説明しました。
次は、pypinfoのインストールを説明します。
pypinfoのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.1.2 setuptools 62.6.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、pypinfoのインストールです。
pypinfoのインストールは、以下のコマンドとなります。
pip install pypinfo
pypinfoのインストールは、それほど時間はかかりません。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ----------------------------- --------- binary 1.0.0 cachetools 5.2.0 certifi 2022.6.15 charset-normalizer 2.1.0 click 8.1.3 google-api-core 2.8.2 google-auth 2.9.0 google-cloud-bigquery 3.2.0 google-cloud-bigquery-storage 2.13.2 google-cloud-core 2.3.1 google-crc32c 1.3.0 google-resumable-media 2.3.3 googleapis-common-protos 1.56.3 grpcio 1.47.0 grpcio-status 1.47.0 idna 3.3 numpy 1.23.0 packaging 21.3 pip 22.1.2 platformdirs 2.5.2 proto-plus 1.20.6 protobuf 3.20.1 pyarrow 8.0.0 pyasn1 0.4.8 pyasn1-modules 0.2.8 pyparsing 3.0.9 pypinfo 21.0.0 python-dateutil 2.8.2 requests 2.28.1 rsa 4.8 setuptools 62.6.0 six 1.16.0 tinydb 4.7.0 tinyrecord 0.2.0 urllib3 1.26.9 wheel 0.36.2
pypinfoは、思ったより多くのライブラリに依存しています。
環境が汚れるのが嫌な場合は、Python仮想環境にインストールしましょう。
以上、pypinfoのインストールを説明しました。
次は、pypinfoの動作確認を説明します。
pypinfoの動作確認
pypinfoの利用方法は、ヘルプで確認できます。
$ pypinfo -h Usage: pypinfo [OPTIONS] [PROJECT] [FIELDS]... COMMAND [ARGS]... Valid fields are: project | version | file | pyversion | percent3 | percent2 | impl | impl-version | openssl | date | month | year | country | installer | installer-version | setuptools-version | system | system-release | distro | distro-version | cpu | libc | libc-version Options: -a, --auth TEXT Path to Google credentials JSON file. --run / --test --test simply prints the query. -j, --json Print data as JSON, with keys `rows` and `query`. -i, --indent INTEGER JSON indentation level. -t, --timeout INTEGER Milliseconds. Default: 120000 (2 minutes) -l, --limit INTEGER Maximum number of query results. Default: 10 -d, --days INTEGER Number of days in the past to include. Default: 30 -sd, --start-date TEXT Must be negative or YYYY-MM[-DD]. Default: -31 -ed, --end-date TEXT Must be negative or YYYY-MM[-DD]. Default: -1 -m, --month TEXT Shortcut for -sd & -ed for a single YYYY-MM month. -w, --where TEXT WHERE conditional. Default: file.project = "project" -o, --order TEXT Field to order by. Default: download_count --all Show downloads by all installers, not only pip. -pc, --percent Print percentages. -md, --markdown Output as Markdown. -v, --verbose Print debug messages to stderr. --version Show the version and exit. -h, --help Show this message and exit.
実際にpypinfoを利用するには、認証ファイルを読み込む必要があります。
認証ファイルの読み込みは、次のコマンドで実行できます。
pypinfo --auth path/to/your_credentials.json
これ以外には、環境変数GOOGLE_APPLICATION_CREDENTIALSを利用する方法があります。
今回は、コマンドで読み込む方法を実行します。
$ pypinfo --auth ./key/pypinfo-credentials.json Credentials location set to "./key/pypinfo-credentials.json".
実行後、上記のように表示されれば読み込み成功です。
これにより、BigQuery APIを利用できるようになりました。
実際に利用してみましょう。
「Selenium」ライブラリのダウンロード状況を照会することにします。
実行した結果は、以下。
$ pypinfo selenium pyversion Served from cache: False Data processed: 952.92 MiB Data billed: 953.00 MiB Estimated cost: $0.01 | python_version | download_count | | -------------- | -------------- | | 3.9 | 2,847,739 | | 3.8 | 2,771,601 | | 3.7 | 2,168,372 | | 3.6 | 1,004,240 | | 3.10 | 521,663 | | 2.7 | 302,308 | | 3.5 | 37,388 | | 3.4 | 14,892 | | 3.11 | 2,462 | | 3.3 | 22 | | Total | 9,670,687 |
「pyversion」を付けたことにより、Pythonバージョン毎のダウンロード数となっています。
この結果を見ると、Python 3.9でのダウンロード数が最大となります。
以上、pypinfoの動作確認を説明しました。