Python学习 Python,这 22 个包怎能不掌握?


Python学习 Python,这 22 个包怎能不掌握?
本文插图
作者 | Erik-Jan van Baaren
译者 | 弯月 , 责编 | 屠敏
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
以下为译文:
如今全球各个行业内 Python 的使用状况怎么样呢?
这个问题就是我写这篇文章的初衷 。 我找出了22个最常用的 Python 包 , 希望能给你一些启发 。
首先我列出了最近一年内 PyPI 上下载量最高的 Python 包 。 我们来看看这些包的作用 , 它们的之间的关系 , 以及为什么会如此流行 。
1. Urllib3
8.93亿次下载
Urllib3 是 Python 的 HTTP 客户端 , 它提供了许多 Python 标准库没有的功能 。

  • 线程安全
  • 连接池
  • 客户端 SSL/TLS 验证
  • 使用 multipart 编码进行文件上传
  • 用于重传请求并处理 HTTP 重定向的辅助功能
  • 支持 gzip 和 deflate 编码
  • 支持 HTTP 和 SOCKS 代理
尽管名字叫做 Urllib3 , 但它并不是 Python 自带的 urllib2 的后继版本 。 如果你想尽可能使用 Python 的核心功能(比如由于某些限制导致不能安装) , 那么可以看看 urllib.request 。
对于最终用户 , 我强烈推荐 requests 包(参考列表中的第六项) 。 Urllib3 之所以排名第一是因为几乎 1200 个软件包都依赖它 , 许多这些软件包也都在列表中名列前茅 。
2.Six
7.32亿次下载
Six 是 Python 2 和 Python 3 兼容性工具 。 该项目的目的是让代码能够同时在 Python 2 和 Python 3 上运行 。
它提供了许多函数 , 掩盖了 Python 2 和 Python 3 之间的语法差异 。 最容易理解的例子就是six.print_ 。 在 Python 3 中 , 输出时需要使用 print 函数 , 而 Python 2 中是使用不带括号的 print 。 因此 , 使用 six.print_ 可以同时支持两种语言 。
重点:
  • 包的名字 six 来自于2 x 3 = 6
  • 类似的库还有 future
  • 如果想将代码转换成 Python 3(同时不再支持 Python 2) , 可以看看 2to3
尽管我理解该包如此流行 , 但还是希望人们尽快抛弃 Python 2 , 特别是从2020年1月1日起官方已经不再支持 Python 2了 。
3. botocore, boto3, s3transfer, awscli
这几个项目放在一起说:
  • botocore:第3名 , 6.6亿次下载
  • s3transfer:第7名 , 5.84亿次下载
  • awscli:第17名 , 3.94亿次下载
  • boto3:第22名 , 3.29亿次下载
Botocore 是 AWS 的底层接口 。 botocore 是 boto3(第22名)库的基础 , 后者可以让你访问亚马逊的S3、EC2等服务 。
Botocore 也是 AWS-CLI 的基础 , 后者是 AWS 的命令行界面 。
s3transfer(第七名)是用于管理S3传输的 Python 库 。 该库仍在开发中 , 它的主页依然不建议使用 , 或者使用时至少要固定版本 , 因为即使在小版本号之间它的API也可能会发生变化 。 boto3、AWS-CLI 和许多其他项目都依赖于 s3transfer 。
AWS 相关的库的排名如此高 , 正说明了 AWS 的服务是多么流行 。
4. Pip
【Python学习 Python,这 22 个包怎能不掌握?】 6.27亿次 下载
我猜许多人都知道并且喜爱 pip(Python的包安装工具) 。 使用 pip 从 Python Package Index和其他仓库(如本地镜像或包含私有软件的自定义仓库等)安装软件包不费吹灰之力 。
关于 pip 的趣事: