被下载最多Python库是哪些?
大家好,欢迎来到 Crossin 的编程教室~
PyPI 全称是 Python Package Index(Python 软件包索引)。你可以把它理解为 Python 的官方“应用商店”。
每当你通过 pip install 命令安装 Python 第三方模块时,就是通过 PyPI 的服务器(或镜像服务器)进行下载。
那么哪些模块是被下载最多的呢?
PyPI 上有个排行,记录了最近1天、1周、1个月下载最多的20个模块。
跟着 Crossin 来看看排前面的都是些什么模块?
1. boto3
AWS (亚马逊云) 的官方 SDK,它是所有 AWS 服务(如 S3 存储、EC2 服务器)的标配。由于大量企业使用 AWS 并在 CI/CD 环境中反复安装,下载量惊人。
2. packaging
它是 pip 的核心依赖,处理 Python 包的版本号、格式等。几乎所有涉及安装、打包的操作都会触发它的下载。
3. urllib3
强大的 HTTP 客户端(底层),它是 requests 的基石。虽然大家喜欢用 requests,但底层干活的是 urllib3,且它支持连接池管理等高级特性。
4. certifi
它提供根证书集合(SSL/TLS)。只要你的程序需要安全地访问 HTTPS 网站,就需要它来验证证书。它是 requests 的强制依赖。
5. idna
他用来处理域名中的非 ASCII 字符(国际化域名),是处理 URL 时必不可少的解析工具,也是 requests 的依赖项。
6. requests
Python 界公认的“爬虫与接口对接”标准库。虽然它是第 6 名,但通过它带动的 3、4、5、8 名下载量也非常巨大。
7. typing-extensions
它为旧版 Python 提供新的类型提示功能。随着 Python 静态类型检查(Type Hinting)的普及,它是 pydantic 等现代库的必备底座。
8. charset-normalizer
升级版的编码识别工具。它是 requests 的依赖,用于解决网页编码乱码问题。
9. setuptools
经典的打包工具。绝大多数 Python 项目在安装或构建 .whl 文件时都会用到它。
10. botocore
它是 boto3 的核心依赖,负责处理底层的 AWS 服务描述和请求格式。
一个有趣的现象:第 6 名的 requests 养活了 top10 的半壁江山。
当你运行 pip install requests 时,系统会自动下载:urllib3、certifi、idna、charset-normalizer
这种递归式安装是前10名被基础底层库统治的主要原因。
而 boto3 之所以会断层式夺冠,则是因为在 AWS 数以百万计的 CI/CD(持续集成/持续部署)自动化流水线中,每一秒都有机器在自动下载 boto3 来部署服务。超高下载量的来源是机器,而非开发者。