大家好,欢迎来到 Crossin 的编程教室~PyPI 全称是 Python Package Index(Python 软件包索引)。你可以把它理解为 Python 的官方“应用商店”。每当你通过 pip install 命令安装 Python 第三方模块时,就是通过 PyPI 的服务器(或镜像服务器)进行下载。那么哪些模块是被下载最多的呢?PyPI 上有个排行,记录了最近1天、1周、1个月下载最多的20个模块。跟着 Crossin 来看看排前面的都是些什么模块?1. boto3AWS (亚马逊云) 的官方 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. requestsPython 界公认的“爬虫与接口对接”标准库。虽然它是第 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 来部署服务。超高下载量的来源是机器,而非开发者。