2019 年 10 大优秀 Python 支持库

这是我们第五次推出年度优秀 Python 支持库榜单 。在这里,我们列出了隐匿于开源世界里的瑰宝,既可以帮你启动新的项目,也可以为你现有的项目添光加彩 。本榜单覆盖了各个领域,包括机器学习与非机器学习的支持库 。作者:吱吱不倦的呆鸟;来源:Python大咖谈
1. HTTPX
2019 年 10 大优秀 Python 支持库

文章插图
 
项目网址:
https://www.encode.io/httpx/
经常进行 API 交互的 Python 忠粉,对 requests 应该是运用自如了 。不过,对于日趋普及的现代高性能应用而言,在用到异步范式时,requests 就显得有点捉襟见肘了 。
为了解决这一问题,大咖 Tom Christie 和他的小伙伴给大家带来了新世代异步 HTTP 客户端 ~ HTTPX 。
紧跟 requests 步伐,HTTPX 在支持 requests 标准功能的同时,还支持 HTTP/2 与 HTTP/1,以及通过 ASGI 协议直接调用 Python 网络应用,此外还有完善的类型注释 。
要执行大规模并发请求?HTTPX 就是你要找的答案 。
注意:HTTPX 仍在 alpha 版开发阶段,目前只开发了异步客户端,将来还会引入同步客户端 。
2. Starlette
2019 年 10 大优秀 Python 支持库

文章插图
 
项目网址:
https://www.starlette.io/
Starlette 打包了 WebSocket、GraphQL、进程内后台任务等多种功能,是真正高性能的轻量级 ASGI 框架与工具箱 。所有功能都完全支持类型注释代码库,且不需要任何硬性依赖项 。可以把它当成非常轻量级的现代异步版 Flask 。
Starlette 的灵活性很强,既可以用作完整的网络框架,也可以只用作 ASGI 工具箱 。
Starlette 运行在 uvicorn 之上,这个支持库入选了去年的 10 大优秀 Python 支持库榜单 。
【2019 年 10 大优秀 Python 支持库】如果想开发新型网络应用,强烈建议您给 Starlette 一个发光发热的机会 。
3. FastAPI
2019 年 10 大优秀 Python 支持库

文章插图
 
项目网址:
https://github.com/tiangolo/fastapi
Starlette 很赞,但它太迷你了,虽然给了开发者很大的自由,但有时,用户要的其实只是一个能快速完成任务的框架 。
Sebastián Ramírez 就是出于这个目的开发的 FastAPI,怎么说呢?这个支持库的各个方面都很 Fast 。
这个用 Python 开发 API 的新框架具有超高性能,而且可以基于 OpenAPI 标准自动生成交互式文档 。默认支持 Swagger UI 与 ReDoc,允许直接从浏览器调用、测试 API,从而提高开发效率 。用这个框架开发 API,真的是又快又简单 。
该支持库还支持现代 Python 优秀实用功能之一:类型提示 。FastAPI 在很多方面都使用了类型提示,其中最酷的一个功能是由 Pydantic 加持的自动数据验证与转换 。
FastAPI 基于 Starlette 开发,性能与 NodeJS 和 GO 相当,还自带 WebSocket 与 GraphQL 原生支持 。
最后,对于开源支持库而言,它的技术支持文档也非常不错 。说真的,去看一下吧!
4. Immutables
2019 年 10 大优秀 Python 支持库

文章插图
 
项目网址:
https://github.com/magicstack/immutables
MagicStack 的兄弟回归了,这次他们带来的是一个简单、优雅的不可变映射类型(“冻结字典”) 。
这东西的好处在哪儿?呃,希望你能听得懂下面这句话,Haskell 等函数编程语言里使用的哈希数组映射字典树(HAMT)的底层数据结构 。最值得注意的是,不管 set() 还是 get() 操作的性能都为 O(log N),且对于相对较小的映射,可以达到 O(1) 。
如果你的应用里字典的规模较大,并且想提高一下性能,这个酷酷的新支持库值得一试 。
5. Pyodide项目网址:
https://github.com/iodide-project/pyodide/
Pyodide 是本榜单里最刷三观的项目 。通过 WebAssembly,它把 Python 科学引入到了浏览器界面,把科学计算提升到了全新的层面 。
想用 Numpy 搞定一些数字?用 Pandas 处理大型 DataFrame?用 Matplotlib 为计算结果进行可视化?有了 Pyodide,这些操作在浏览器里就可以轻轻松松地实现了 。
这还不算完,还有好消息:这个库可用的 Python 支持库已经超过了 35 个,您这是要上天啊 。
6. Modin
2019 年 10 大优秀 Python 支持库

文章插图
 
项目网址:
https://github.com/modin-project/modin
Modin 的口号是“只改一行代码,就能加速 Pandas”,没错,就是这么简单 。只要安装 Modin,更改 import 语句,在多核笔记本上,处理数据的速度就能提高 4 倍 。


推荐阅读