この記事では、過去1ヶ月(2022年9~10月)におけるPyPI(Python Package Index)のダウンロード数トップ5のPythonライブラリ(パッケージ)を解説していきます。
第1位:boto3
- boto3とは、Pythonのアプリケーション・ライブラリ・スクリプトを「AWSの各種サービスへと統合するためのライブラリ」である。
- 「SDK for Python」とも言う。
- 「クライアントAPI 」と「リソースAPI」の2種類の呼び出し方がある(補足情報を参照)。
第2位:urllib3
- urllib3とは、「HTTP通信を扱うためのライブラリ」である。
- 「HTTPクライアント」とも言う。
- 「スレッドセーフ」、「コネクションプール」、「ファイルアップロード機能」などの機能がurllibから拡張されている。
第3位:botocore
- botocoreとは、Pythonのアプリケーション・ライブラリ・スクリプトを「AWSの各種サービスへと統合するためのライブラリ(低レベル)」である。
- 「低レベルインターフェース(Low-Level Interface)」。
- boto3の中に含まれている。
第4位:idna
- idnaとは、「IDNAプロトコルに対応するためのライブラリ」である。
- IDNA(Internationalizing Domain Names in Applications、国際化ドメイン名)とは、「ドメイン名にASCII以外の文字も使用できるようにするための仕組み」。
- 標準ライブラリ(encoding.idna)も存在するが、古いプロトコル(RFC 3490)にしか対応していない。
第5位:typing-extensions
- typing-extensionsとは、「古いバージョンのPythonにおいて、新しいバージョンに搭載された型を使用するためのライブラリ」である。
- 例えば、Python 3.10から導入された「typing.TypeGuard」やPython 3.8から導入された「typing.Literal」に対応することができる。
- 「try / except」を組み合わせて、型の存在可否を検証する(補足情報を参照)。
ランキング表(TOP20)
ランキング | ライブラリ名 | ダウンロード数 |
---|---|---|
1 | boto3 | 376,750,112 |
2 | urllib3 | 253,027,410 |
3 | botocore | 238,514,686 |
4 | idna | 234,371,700 |
5 | typing-extensions | 231,869,413 |
6 | requests | 223,291,773 |
7 | setuptools | 196,722,834 |
8 | s3transfer | 190,818,727 |
9 | google-api-core | 190,507,927 |
10 | charset-normalizer | 188,177,158 |
11 | certifi | 185,442,631 |
12 | python-dateutil | 165,092,047 |
13 | six | 162,631,326 |
14 | click | 162,119,414 |
15 | pyyaml | 150,148,879 |
16 | jinja2 | 149,842,457 |
17 | cryptography | 147,752,881 |
18 | attrs | 139,001,542 |
19 | awscli | 132,374,884 |
20 | numpy | 129,181,584 |
筆者の所感
- 正直、意外だったランキング(numpy / pandas / djangoあたりが上位という印象だった)。
- データサイエンティストよりもエンジニアの方が、人口が多いことを実感。
- これまでの仕事の現場ではあまり使ってこなかったライブラリも何個か知れて、学びになった。
最後に
いかがだったでしょうか?
この記事を通して、少しでもあなたの困りごとが解決したら嬉しいです^^
おまけ(お知らせ)
エンジニアの仲間(データサイエンティストも含む)を増やしたいため、公式LINEを始めました🎉
「一緒に仕事をしてくれる方」「友だちとして仲良くしてくれる方」は、友だち追加をしていただけますと嬉しいです!
(仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆)
とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました!
友だち追加後に、アンケートに回答してくれた方へ「エンジニア図鑑(職種20選)」のPDFをお送りします◎

参考文献
補足情報
boto3のクライアントAPIとリソースAPIの記述方法
# クライアントAPI
s3_client = boto3.client('s3')
# リソースAPI
s3_resource = boto3.resource('s3')
typing-extensionsのtry/catchによる検証方法
try:
from typing import Literal
except ImportError:
from typing_extensions import Literal